12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451 |
- var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.SinglePointMappingsB={"SINGLEPOINTMAPPINGS":{"SYMBOL":[{"SYMBOLID":"NBCNUCFILL****X","MAPPINGP":"1900","MAPPINGA":"1900","DESCRIPTION":"Nuclear Symbol Fill","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"NBCBIOFILL****X","MAPPINGP":"1901","MAPPINGA":"1901","DESCRIPTION":"Bio Symbol Fill","WIDTH":"28","HEIGHT":"39"},{"SYMBOLID":"NBCCMLFILL****X","MAPPINGP":"1902","MAPPINGA":"1902","DESCRIPTION":"Chem Symbol Fill","WIDTH":"22","HEIGHT":"39"},{"SYMBOLID":"SONOBYFILL****X","MAPPINGP":"1904","MAPPINGA":"1904","DESCRIPTION":"Sonobuoy Fill","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"CPOINTFILL****X","MAPPINGP":"1903","MAPPINGA":"1903","DESCRIPTION":"Small circle point fill","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"CHKPNTFILL****X","MAPPINGP":"1905","MAPPINGA":"1905","DESCRIPTION":"Action Points Fill","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"REFPNTFILL****X","MAPPINGP":"1908","MAPPINGA":"1908","DESCRIPTION":"Reference Points Fill","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"DECPNTFILL****X","MAPPINGP":"1909","MAPPINGA":"1909","DESCRIPTION":"Decision Point Fill","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*F*PTS---****X","MAPPINGP":"2162","MAPPINGA":"3162","DESCRIPTION":"Point Single Target","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*T*G-----****X","MAPPINGP":"1999","MAPPINGA":"1999","DESCRIPTION":"Suppress","WIDTH":"62","HEIGHT":"35"},{"SYMBOLID":"G*G*GPPN--****X","MAPPINGP":"2196","MAPPINGA":"3196","DESCRIPTION":"Entry Control Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PTN---****X","MAPPINGP":"2163","MAPPINGA":"3163","DESCRIPTION":"Nuclear Target","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*F*PTC---****X","MAPPINGP":"34","MAPPINGA":"34","DESCRIPTION":"Circular Target","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"G*F*PTR---****X","MAPPINGP":"35","MAPPINGA":"35","DESCRIPTION":"Rectangular Target","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"G*F*PCF---****X","MAPPINGP":"2164","MAPPINGA":"3164","DESCRIPTION":"Fire Support Station","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*F*PCS---****X","MAPPINGP":"2165","MAPPINGA":"3165","DESCRIPTION":"Survey Control Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCB---****X","MAPPINGP":"2166","MAPPINGA":"3166","DESCRIPTION":"Firing Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCR---****X","MAPPINGP":"2167","MAPPINGA":"3167","DESCRIPTION":"Reload Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCH---****X","MAPPINGP":"2168","MAPPINGA":"3168","DESCRIPTION":"Hide Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCL---****X","MAPPINGP":"2169","MAPPINGA":"3169","DESCRIPTION":"Launch Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PX----****X","MAPPINGP":"2170","MAPPINGA":"3170","DESCRIPTION":"Ambulance Exchange Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PC----****X","MAPPINGP":"2171","MAPPINGA":"3171","DESCRIPTION":"Cannibalization Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PY----****X","MAPPINGP":"2172","MAPPINGA":"3172","DESCRIPTION":"Casualty Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PT----****X","MAPPINGP":"2173","MAPPINGA":"3173","DESCRIPTION":"Civilian Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PD----****X","MAPPINGP":"2174","MAPPINGA":"3174","DESCRIPTION":"Detainee Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PE----****X","MAPPINGP":"2175","MAPPINGA":"3175","DESCRIPTION":"Enemy Prisoner of War (EPW) Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PL----****X","MAPPINGP":"2176","MAPPINGA":"3176","DESCRIPTION":"Logistics Release Point (LRP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PM----****X","MAPPINGP":"2177","MAPPINGA":"3177","DESCRIPTION":"Maintenance Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PR----****X","MAPPINGP":"2178","MAPPINGA":"3178","DESCRIPTION":"Refuel and Resupply Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PU----****X","MAPPINGP":"2179","MAPPINGA":"3179","DESCRIPTION":"Refuel on the Move (ROM) Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PO----****X","MAPPINGP":"2180","MAPPINGA":"3180","DESCRIPTION":"Traffic Control Post (TCP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PI----****X","MAPPINGP":"2181","MAPPINGA":"3181","DESCRIPTION":"Trailer Transfer Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PN----****X","MAPPINGP":"2182","MAPPINGA":"3182","DESCRIPTION":"Unit Maintenance Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSZ---****X","MAPPINGP":"2183","MAPPINGA":"3183","DESCRIPTION":"Supply Points_General","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSA---****X","MAPPINGP":"2184","MAPPINGA":"3184","DESCRIPTION":"Supply Points_Class I","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSB---****X","MAPPINGP":"2185","MAPPINGA":"3185","DESCRIPTION":"Supply Points_Class II","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSC---****X","MAPPINGP":"2186","MAPPINGA":"3186","DESCRIPTION":"Supply Points_Class III","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSD---****X","MAPPINGP":"2187","MAPPINGA":"3187","DESCRIPTION":"Supply Points_Class IV","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSE---****X","MAPPINGP":"2188","MAPPINGA":"3188","DESCRIPTION":"Supply Points_Class V","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSF---****X","MAPPINGP":"2189","MAPPINGA":"3189","DESCRIPTION":"Supply Points_Class VI","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSG---****X","MAPPINGP":"2190","MAPPINGA":"3190","DESCRIPTION":"Supply Points_Class VII","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSH---****X","MAPPINGP":"2191","MAPPINGA":"3191","DESCRIPTION":"Supply Points_Class VIII","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSI---****X","MAPPINGP":"2192","MAPPINGA":"3192","DESCRIPTION":"Supply Points_Class IX","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSJ---****X","MAPPINGP":"2193","MAPPINGA":"3191","DESCRIPTION":"Supply Points_Class X","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PAS---****X","MAPPINGP":"2194","MAPPINGA":"3194","DESCRIPTION":"Ammunition Supply Point (ASP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PAT---****X","MAPPINGP":"2195","MAPPINGA":"3195","DESCRIPTION":"Ammunition Transfer Point (ATP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PP----****X","MAPPINGP":"2214","MAPPINGA":"3214","DESCRIPTION":"Medevac Pick-Up Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*DPO---****X","MAPPINGP":"2122","MAPPINGA":"3122","DESCRIPTION":"Observation Post/Outpost","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*G*GPPK--****X","MAPPINGP":"2081","MAPPINGA":"3081","DESCRIPTION":"Checkpoint","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPC--****X","MAPPINGP":"2082","MAPPINGA":"3082","DESCRIPTION":"Contact Point","WIDTH":"22","HEIGHT":"31"},{"SYMBOLID":"G*G*GPPO--****X","MAPPINGP":"2083","MAPPINGA":"3083","DESCRIPTION":"Coordination Point","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPL--****X","MAPPINGP":"2085","MAPPINGA":"3085","DESCRIPTION":"Link-Up Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*OAOF--****X","MAPPINGP":"2129","MAPPINGA":"2129","DESCRIPTION":"Fixed and Prefabricated Obstacles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*OAOM--****X","MAPPINGP":"2130","MAPPINGA":"3130","DESCRIPTION":"Moveable Obstacles","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*M*OAOP--****X","MAPPINGP":"2131","MAPPINGA":"3131","DESCRIPTION":"Moveable and Prefabricated Obstacles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APP---****X","MAPPINGP":"2116","MAPPINGA":"3116","DESCRIPTION":"Air Control Point (ACP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APC---****X","MAPPINGP":"2117","MAPPINGA":"3117","DESCRIPTION":"Communications Checkpoint (CCP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPP--****X","MAPPINGP":"2086","MAPPINGA":"3086","DESCRIPTION":"Passage Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPE--****X","MAPPINGP":"2088","MAPPINGA":"3088","DESCRIPTION":"Release Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPS--****X","MAPPINGP":"2089","MAPPINGA":"3089","DESCRIPTION":"Start Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*OPP---****X","MAPPINGP":"2128","MAPPINGA":"3128","DESCRIPTION":"Point of Departure","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*APU---****X","MAPPINGP":"2118","MAPPINGA":"3118","DESCRIPTION":"Pull-Up Point (PUP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APD---****X","MAPPINGP":"2119","MAPPINGA":"3119","DESCRIPTION":"Downed Aircrew Pickup-Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPP---****X","MAPPINGP":"2080","MAPPINGA":"3080","DESCRIPTION":"Action Points (General)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPD--****X","MAPPINGP":"2084","MAPPINGA":"3084","DESCRIPTION":"Decision Point","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPR--****X","MAPPINGP":"2087","MAPPINGA":"3087","DESCRIPTION":"Rally Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPW--****X","MAPPINGP":"2090","MAPPINGA":"3090","DESCRIPTION":"Waypoint","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*NEB---****X","MAPPINGP":"2149","MAPPINGA":"3149","DESCRIPTION":"Biological","WIDTH":"28","HEIGHT":"39"},{"SYMBOLID":"G*M*NEC---****X","MAPPINGP":"2150","MAPPINGA":"3150","DESCRIPTION":"Chemical","WIDTH":"22","HEIGHT":"39"},{"SYMBOLID":"G*M*NDP---****X","MAPPINGP":"2151","MAPPINGA":"3151","DESCRIPTION":"DECON Site/Point (Unspecified)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDT---****X","MAPPINGP":"2153","MAPPINGA":"3153","DESCRIPTION":"DECON Site/Point (Troops)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDE---****X","MAPPINGP":"2154","MAPPINGA":"3154","DESCRIPTION":"DECON Site/Point (Equipment)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDB---****X","MAPPINGP":"2155","MAPPINGA":"3155","DESCRIPTION":"DECON Site/Point (Equipment and Troops)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDD---****X","MAPPINGP":"2157","MAPPINGA":"3157","DESCRIPTION":"DECON Site/Point (Thorough Decontamination)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDA---****X","MAPPINGP":"2152","MAPPINGA":"3152","DESCRIPTION":"Alternate DECON Site/Point (Unspecified)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDO---****X","MAPPINGP":"2156","MAPPINGA":"3156","DESCRIPTION":"DECON Site/Point (Operational Decontamination)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*T*D-----****X","MAPPINGP":"4000","MAPPINGA":"4000","DESCRIPTION":"Destroy","WIDTH":"62","HEIGHT":"35"},{"SYMBOLID":"G*T*I-----****X","MAPPINGP":"4001","MAPPINGA":"4501","DESCRIPTION":"Interdict","WIDTH":"60","HEIGHT":"38"},{"SYMBOLID":"G*T*N-----****X","MAPPINGP":"4002","MAPPINGA":"4502","DESCRIPTION":"Neutralize","WIDTH":"62","HEIGHT":"35"},{"SYMBOLID":"G*G*PN----****X","MAPPINGP":"2120","MAPPINGA":"3120","DESCRIPTION":"Dummy Minefield - Static","WIDTH":"48","HEIGHT":"41"},{"SYMBOLID":"G*G*DPT---****X","MAPPINGP":"2121","MAPPINGA":"3121","DESCRIPTION":"Target Reference","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*DPOC--****X","MAPPINGP":"2123","MAPPINGA":"3123","DESCRIPTION":"Combat Outpost","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"G*G*DPOR--****X","MAPPINGP":"2124","MAPPINGA":"3124","DESCRIPTION":"Observation Post Occupied by Dismounted Scouts or Reconnaissance","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPOF--****X","MAPPINGP":"2125","MAPPINGA":"3125","DESCRIPTION":"Forward Observation Position","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPOS--****X","MAPPINGP":"2126","MAPPINGA":"3126","DESCRIPTION":"Sensor Outpost/Listening Post (OP/LP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPON--****X","MAPPINGP":"2127","MAPPINGA":"3127","DESCRIPTION":"NBC Observation Post (Dismounted)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*OB----****X","MAPPINGP":"2132","MAPPINGA":"3132","DESCRIPTION":"Booby Trap","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"G*M*OMU---****X","MAPPINGP":"2133","MAPPINGA":"2133","DESCRIPTION":"Unspecified Mine","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*M*OMT---****X","MAPPINGP":"2134","MAPPINGA":"2134","DESCRIPTION":"Antitank Mine (AT)","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*M*OMD---****X","MAPPINGP":"2135","MAPPINGA":"2135","DESCRIPTION":"Antitank Mine with Antihandling Device","WIDTH":"24","HEIGHT":"44"},{"SYMBOLID":"G*M*OME---****X","MAPPINGP":"2136","MAPPINGA":"2136","DESCRIPTION":"Antitank Mine (Directional)","WIDTH":"24","HEIGHT":"53"},{"SYMBOLID":"G*M*OMP---****X","MAPPINGP":"2137","MAPPINGA":"2137","DESCRIPTION":"Antipersonnel (AP) Mines","WIDTH":"34","HEIGHT":"30"},{"SYMBOLID":"G*M*OMW---****X","MAPPINGP":"2138","MAPPINGA":"2138","DESCRIPTION":"Wide Area Mines","WIDTH":"40","HEIGHT":"33"},{"SYMBOLID":"G*M*OFS---****X","MAPPINGP":"2139","MAPPINGA":"3139","DESCRIPTION":"Static Depiction","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"G*M*BCP---****X","MAPPINGP":"2142","MAPPINGA":"3142","DESCRIPTION":"Engineer Regulating Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*SE----****X","MAPPINGP":"2143","MAPPINGA":"2143","DESCRIPTION":"Small Trench or Fortification","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*M*SF----****X","MAPPINGP":"2144","MAPPINGA":"3144","DESCRIPTION":"Fort","WIDTH":"44","HEIGHT":"48"},{"SYMBOLID":"G*M*SS----****X","MAPPINGP":"2145","MAPPINGA":"2145","DESCRIPTION":"Surface Shelter","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"G*M*SU----****X","MAPPINGP":"2146","MAPPINGA":"2146","DESCRIPTION":"Underground Shelter","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"G*M*NZ----****X","MAPPINGP":"2147","MAPPINGA":"3147","DESCRIPTION":"Nuclear Detonations Ground Zero","WIDTH":"31","HEIGHT":"39"},{"SYMBOLID":"G*M*NF----****X","MAPPINGP":"2148","MAPPINGA":"3148","DESCRIPTION":"Fallout Producing","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"G*G*GPWI--****X","MAPPINGP":"2038","MAPPINGA":"2038","DESCRIPTION":"Impact Point","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-PL----P----","MAPPINGP":"5000","DESCRIPTION":"Low Pressure Center","WIDTH":"24","HEIGHT":"33"},{"SYMBOLID":"WAS-PH----P----","MAPPINGP":"5003","DESCRIPTION":"High Pressure Center","WIDTH":"26","HEIGHT":"34"},{"SYMBOLID":"WAS-TL----P----","MAPPINGP":"5006","DESCRIPTION":"Light Turbulence","WIDTH":"38","HEIGHT":"22"},{"SYMBOLID":"WAS-TM----P----","MAPPINGP":"5007","DESCRIPTION":"Moderate Turbulence","WIDTH":"46","HEIGHT":"22"},{"SYMBOLID":"WAS-TS----P----","MAPPINGP":"5008","DESCRIPTION":"Severe Turbulence","WIDTH":"46","HEIGHT":"28"},{"SYMBOLID":"WAS-TE----P----","MAPPINGP":"5009","DESCRIPTION":"Extreme Turbulence","WIDTH":"46","HEIGHT":"34"},{"SYMBOLID":"WAS-ICL---P----","MAPPINGP":"5011","DESCRIPTION":"Light Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-ICM---P----","MAPPINGP":"5012","DESCRIPTION":"Moderate Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-ICS---P----","MAPPINGP":"5013","DESCRIPTION":"Severe Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRL---P----","MAPPINGP":"5014","DESCRIPTION":"Light Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRM---P----","MAPPINGP":"5015","DESCRIPTION":"Moderate Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRS---P----","MAPPINGP":"5016","DESCRIPTION":"Severe Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IML---P----","MAPPINGP":"5017","DESCRIPTION":"Light Mixed Icing","WIDTH":"48","HEIGHT":"54"},{"SYMBOLID":"WAS-IMM---P----","MAPPINGP":"5018","DESCRIPTION":"Moderate Mixed Icing","WIDTH":"60","HEIGHT":"35"},{"SYMBOLID":"WAS-IMS---P----","MAPPINGP":"5019","DESCRIPTION":"Severe Mixed Icing","WIDTH":"60","HEIGHT":"34"},{"SYMBOLID":"WA--W----------","MAPPINGP":"10136","MAPPINGA":"10136","DESCRIPTION":"Wind Barb","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WC----P----","MAPPINGP":"5020","DESCRIPTION":"Calm Winds","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WAS-CCCSCSP----","MAPPINGP":"5021","DESCRIPTION":"Clear Sky (SKC)","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSBCP----","MAPPINGP":"5024","DESCRIPTION":"Broken Coverage (BKN)","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WAS-WST-FCP----","MAPPINGP":"5072","DESCRIPTION":"Funnel Cloud (FC) Tornado / Waterspout","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-GSI---P----","MAPPINGP":"5107","DESCRIPTION":"Predominately Ice Covered","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"WAS-WSDD--P----","MAPPINGP":"5087","DESCRIPTION":"Dust Devil","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSFU--P----","MAPPINGP":"5083","DESCRIPTION":"Smoke","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSDB--P----","MAPPINGP":"5088","DESCRIPTION":"Blowing Dust or Sand","WIDTH":"28","HEIGHT":"48"},{"SYMBOLID":"G*O*SS----****X","MAPPINGP":"2210","MAPPINGA":"2210","DESCRIPTION":"Sea Anomaly [Wake, Current, Knuckle]","WIDTH":"39","HEIGHT":"31"},{"SYMBOLID":"G*O*SM----****X","MAPPINGP":"2209","MAPPINGA":"2209","DESCRIPTION":"Marine Life","WIDTH":"35","HEIGHT":"12"},{"SYMBOLID":"G*O*SBW---****X","MAPPINGP":"2207","MAPPINGA":"2207","DESCRIPTION":"Wreck, Non-Dangerous","WIDTH":"44","HEIGHT":"24"},{"SYMBOLID":"G*O*SBWD--****X","MAPPINGP":"2208","MAPPINGA":"2208","DESCRIPTION":"Wreck, Dangerous","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"G*O*SBN---****X","MAPPINGP":"2206","MAPPINGA":"2206","DESCRIPTION":"Seabed Rock/Stone, Obstacle, Other","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*SBM---****X","MAPPINGP":"2205","MAPPINGA":"2205","DESCRIPTION":"Installation/Manmade","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*SB----****X","MAPPINGP":"2204","MAPPINGA":"2204","DESCRIPTION":"Bottom Return/Nombo","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*HM----****X","MAPPINGP":"2201","MAPPINGA":"2201","DESCRIPTION":"Sea Mine-Like","WIDTH":"22","HEIGHT":"22"},{"SYMBOLID":"G*O*HO----****X","MAPPINGP":"2203","MAPPINGA":"2203","DESCRIPTION":"Oil Rig","WIDTH":"30","HEIGHT":"18"},{"SYMBOLID":"G*O*HI----****X","MAPPINGP":"2202","MAPPINGA":"2202","DESCRIPTION":"Iceberg","WIDTH":"36","HEIGHT":"27"},{"SYMBOLID":"G*O*FO----****X","MAPPINGP":"2213","MAPPINGA":"2213","DESCRIPTION":"Electro-Optical","WIDTH":"30","HEIGHT":"29"},{"SYMBOLID":"G*O*FE----****X","MAPPINGP":"2212","MAPPINGA":"2212","DESCRIPTION":"Electro-Magnetic","WIDTH":"31","HEIGHT":"29"},{"SYMBOLID":"G*O*FA----****X","MAPPINGP":"2211","MAPPINGA":"2211","DESCRIPTION":"Acoustic","WIDTH":"28","HEIGHT":"29"},{"SYMBOLID":"G*O*EP----****X","MAPPINGP":"2199","MAPPINGA":"2199","DESCRIPTION":"Person In Water","WIDTH":"32","HEIGHT":"20"},{"SYMBOLID":"G*O*ED----****X","MAPPINGP":"2198","MAPPINGA":"2198","DESCRIPTION":"Ditched Aircraft","WIDTH":"44","HEIGHT":"35"},{"SYMBOLID":"G*O*ES----****X","MAPPINGP":"2197","MAPPINGA":"3197","DESCRIPTION":"Emergency Distress Call","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*O*EV----****X","MAPPINGP":"2200","MAPPINGA":"2200","DESCRIPTION":"Distressed Vessel","WIDTH":"52","HEIGHT":"37"},{"SYMBOLID":"G*G*GPWP--****X","MAPPINGP":"2039","MAPPINGA":"2039","DESCRIPTION":"Predicted Impact Point","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"G*G*GPWM--****X","MAPPINGP":"2037","MAPPINGA":"3037","DESCRIPTION":"MSL Detect Point","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"G*G*GPWG--****X","MAPPINGP":"2036","MAPPINGA":"2036","DESCRIPTION":"Ground Zero","WIDTH":"34","HEIGHT":"43"},{"SYMBOLID":"G*G*GPWE--****X","MAPPINGP":"2035","MAPPINGA":"3035","DESCRIPTION":"Entry Point","WIDTH":"62","HEIGHT":"34"},{"SYMBOLID":"G*G*GPWD--****X","MAPPINGP":"2034","MAPPINGA":"3034","DESCRIPTION":"Drop Point","WIDTH":"44","HEIGHT":"38"},{"SYMBOLID":"G*G*GPWA--****X","MAPPINGP":"2033","MAPPINGA":"3033","DESCRIPTION":"Aim Point","WIDTH":"47","HEIGHT":"47"},{"SYMBOLID":"G*G*GPUUS-****X","MAPPINGP":"2006","MAPPINGA":"2006","DESCRIPTION":"Sinker","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*G*GPUUL-****X","MAPPINGP":"2005","MAPPINGA":"2005","DESCRIPTION":"Lost Contact","WIDTH":"24","HEIGHT":"30"},{"SYMBOLID":"G*G*GPUUD-****X","MAPPINGP":"2003","MAPPINGA":"2003","DESCRIPTION":"Datum","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"G*G*GPUUB-****X","MAPPINGP":"2004","MAPPINGA":"2004","DESCRIPTION":"Brief Contact","WIDTH":"24","HEIGHT":"30"},{"SYMBOLID":"G*G*GPUYV-****X","MAPPINGP":"2015","MAPPINGA":"3015","DESCRIPTION":"Vertical Line Array DIFAR (VLAD)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYR-****X","MAPPINGP":"2017","MAPPINGA":"3017","DESCRIPTION":"Range Only [RO]","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYP-****X","MAPPINGP":"2008","MAPPINGA":"3008","DESCRIPTION":"Pattern Center","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYL-****X","MAPPINGP":"2010","MAPPINGA":"3010","DESCRIPTION":"Low Frequency Analyzing and Recording (LOFAR)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYC-****X","MAPPINGP":"2011","MAPPINGA":"3011","DESCRIPTION":"Command Active Sonobouy System (CASS)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYK-****X","MAPPINGP":"2018","MAPPINGA":"3018","DESCRIPTION":"Kingpin","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYD-****X","MAPPINGP":"2009","MAPPINGA":"3009","DESCRIPTION":"Directional Frequency Analyzing and Recording (DIFAR)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYS-****X","MAPPINGP":"2012","MAPPINGA":"3012","DESCRIPTION":"Directional Command Active Sonobuoy System [DICASS]","WIDTH":"25","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYB-****X","MAPPINGP":"2013","MAPPINGA":"3013","DESCRIPTION":"Bathythermograph Transmitting [BT]","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYT-****X","MAPPINGP":"2016","MAPPINGA":"3016","DESCRIPTION":"ATAC","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYA-****X","MAPPINGP":"2014","MAPPINGA":"3014","DESCRIPTION":"ANM","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUSC-****X","MAPPINGP":"2023","MAPPINGA":"2023","DESCRIPTION":"Search Center","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*GPUSA-****X","MAPPINGP":"2021","MAPPINGA":"2021","DESCRIPTION":"Search Area","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPUSD-****X","MAPPINGP":"2022","MAPPINGA":"2022","DESCRIPTION":"Dip Position","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPOW--****X","MAPPINGP":"2049","MAPPINGA":"3049","DESCRIPTION":"Waypoint","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPOZ--****X","MAPPINGP":"2047","MAPPINGA":"3047","DESCRIPTION":"Rendezvous","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"G*G*GPOR--****X","MAPPINGP":"2051","MAPPINGA":"3051","DESCRIPTION":"Point R","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPOP--****X","MAPPINGP":"2050","MAPPINGA":"3050","DESCRIPTION":"PIM","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"G*G*GPOD--****X","MAPPINGP":"2048","MAPPINGA":"3048","DESCRIPTION":"Diversions","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPRS--****X","MAPPINGP":"4003","MAPPINGA":"4003","DESCRIPTION":"Special Point","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPRI--****X","MAPPINGP":"2032","MAPPINGA":"2032","DESCRIPTION":"Point of Interest","WIDTH":"24","HEIGHT":"43"},{"SYMBOLID":"G*G*GPRN--****X","MAPPINGP":"4004","MAPPINGA":"4004","DESCRIPTION":"Nav Reference","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPRD--****X","MAPPINGP":"4005","MAPPINGA":"4005","DESCRIPTION":"DLRP","WIDTH":"31","HEIGHT":"31"},{"SYMBOLID":"G*G*GPHY--****X","MAPPINGP":"2044","MAPPINGA":"3044","DESCRIPTION":"Point Y","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHX--****X","MAPPINGP":"2045","MAPPINGA":"3045","DESCRIPTION":"Point X","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHQ--****X","MAPPINGP":"2042","MAPPINGA":"3042","DESCRIPTION":"Point Q","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHA--****X","MAPPINGP":"2043","MAPPINGA":"3043","DESCRIPTION":"Point A","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPAO--****X","MAPPINGP":"4010","MAPPINGA":"4510","DESCRIPTION":"Tomcat","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAK--****X","MAPPINGP":"4007","MAPPINGA":"4507","DESCRIPTION":"Tanking","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAT--****X","MAPPINGP":"4006","MAPPINGA":"4506","DESCRIPTION":"TACAN","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAS--****X","MAPPINGP":"4014","MAPPINGA":"4514","DESCRIPTION":"Strike IP","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAR--****X","MAPPINGP":"4011","MAPPINGA":"4511","DESCRIPTION":"Rescue","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAL--****X","MAPPINGP":"4012","MAPPINGA":"4512","DESCRIPTION":"Replenish","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAM--****X","MAPPINGP":"4013","MAPPINGA":"4513","DESCRIPTION":"Marshall","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAC--****X","MAPPINGP":"4015","MAPPINGA":"4515","DESCRIPTION":"Corridor Tab","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAP--****X","MAPPINGP":"2053","MAPPINGA":"3053","DESCRIPTION":"Combat Air Patrol (CAP)","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAH--****X","MAPPINGP":"4009","MAPPINGA":"4509","DESCRIPTION":"Antisubmarine Warfare, Rotary Wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAA--****X","MAPPINGP":"4008","MAPPINGA":"4508","DESCRIPTION":"Antisubmarine Warfare, Fixed Wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAW--****X","MAPPINGP":"2054","MAPPINGA":"3054","DESCRIPTION":"Airborne Early Warning (AEW)","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"WAS-PC----P----","MAPPINGP":"5001","DESCRIPTION":"Cyclone Center","WIDTH":"26","HEIGHT":"33"},{"SYMBOLID":"WAS-PLT---P----","MAPPINGP":"5002","DESCRIPTION":"Tropopause Low","WIDTH":"28","HEIGHT":"26"},{"SYMBOLID":"WAS-PA----P----","MAPPINGP":"5004","DESCRIPTION":"Anticyclone Center","WIDTH":"26","HEIGHT":"33"},{"SYMBOLID":"WAS-PHT---P----","MAPPINGP":"5005","DESCRIPTION":"Tropopause High","WIDTH":"28","HEIGHT":"26"},{"SYMBOLID":"WAS-T-MW--P----","MAPPINGP":"5010","DESCRIPTION":"Mountain Waves","WIDTH":"24","HEIGHT":"12"},{"SYMBOLID":"WAS-CCCSFCP----","MAPPINGP":"5022","DESCRIPTION":"Few Coverage","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSSCP----","MAPPINGP":"5023","DESCRIPTION":"Scattered Coverage","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WAS-CCCSOCP----","MAPPINGP":"5025","DESCRIPTION":"Overcast Coverage","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSOBP----","MAPPINGP":"5026","DESCRIPTION":"Sky Totally or Partially Obscured","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-WSR-LIP----","MAPPINGP":"5027","DESCRIPTION":"Intermittent Light Rain","WIDTH":"10","HEIGHT":"10"},{"SYMBOLID":"WAS-WSR-LCP----","MAPPINGP":"5028","DESCRIPTION":"Continuous Light Rain","WIDTH":"36","HEIGHT":"10"},{"SYMBOLID":"WAS-WSR-MIP----","MAPPINGP":"5029","DESCRIPTION":"Intermittent Moderate Rain","WIDTH":"10","HEIGHT":"27"},{"SYMBOLID":"WAS-WSR-MCP----","MAPPINGP":"5030","DESCRIPTION":"Continuous Moderate Rain","WIDTH":"26","HEIGHT":"22"},{"SYMBOLID":"WAS-WSR-HIP----","MAPPINGP":"5031","DESCRIPTION":"Intermittent Heavy Rain","WIDTH":"10","HEIGHT":"30"},{"SYMBOLID":"WAS-WSR-HCP----","MAPPINGP":"5032","DESCRIPTION":"Continuous Heavy Rain","WIDTH":"34","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRFL-P----","MAPPINGP":"5033","DESCRIPTION":"Light Freezing Rain","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSRFMHP----","MAPPINGP":"5034","DESCRIPTION":"Moderate/Heavy Freezing Rain","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSRSL-P----","MAPPINGP":"5035","DESCRIPTION":"Light Rain Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRSMHP----","MAPPINGP":"5036","DESCRIPTION":"Moderate/Heavy Rain Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRST-P----","MAPPINGP":"5037","DESCRIPTION":"Torrential Rain Showers","WIDTH":"12","HEIGHT":"37"},{"SYMBOLID":"WAS-WSD-LIP----","MAPPINGP":"5038","DESCRIPTION":"Intermittent Light Drizzle","WIDTH":"8","HEIGHT":"14"},{"SYMBOLID":"WAS-WSD-LCP----","MAPPINGP":"5039","DESCRIPTION":"Continuous Light Drizzle","WIDTH":"21","HEIGHT":"14"},{"SYMBOLID":"WAS-WSD-MIP----","MAPPINGP":"5040","DESCRIPTION":"Intermittent Moderate Drizzle","WIDTH":"8","HEIGHT":"32"},{"SYMBOLID":"WAS-WSD-MCP----","MAPPINGP":"5041","DESCRIPTION":"Continuous Moderate Drizzle","WIDTH":"21","HEIGHT":"29"},{"SYMBOLID":"WAS-WSD-HIP----","MAPPINGP":"5042","DESCRIPTION":"Intermittent Heavy Drizzle","WIDTH":"8","HEIGHT":"44"},{"SYMBOLID":"WAS-WSD-HCP----","MAPPINGP":"5043","DESCRIPTION":"Continuous Heavy Drizzle","WIDTH":"27","HEIGHT":"34"},{"SYMBOLID":"WAS-WSDFL-P----","MAPPINGP":"5044","DESCRIPTION":"Light Freezing Drizzle","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSDFMHP----","MAPPINGP":"5045","DESCRIPTION":"Moderate/Heavy Freezing Drizzle","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSM-L-P----","MAPPINGP":"5046","DESCRIPTION":"Light Rain or Drizzle and Snow","WIDTH":"16","HEIGHT":"33"},{"SYMBOLID":"WAS-WSM-MHP----","MAPPINGP":"5047","DESCRIPTION":"Moderate Heavy Rain or Drizzle and Snow","WIDTH":"16","HEIGHT":"52"},{"SYMBOLID":"WAS-WSMSL-P----","MAPPINGP":"5048","DESCRIPTION":"Light Rain and Snow Showers","WIDTH":"16","HEIGHT":"53"},{"SYMBOLID":"WAS-WSMSMHP----","MAPPINGP":"5049","DESCRIPTION":"Moderate/Heavy Rain and Snow Showers","WIDTH":"16","HEIGHT":"52"},{"SYMBOLID":"WAS-WSS-LIP----","MAPPINGP":"5050","DESCRIPTION":"Intermittent Light Snow","WIDTH":"16","HEIGHT":"18"},{"SYMBOLID":"WAS-WSS-LCP----","MAPPINGP":"5051","DESCRIPTION":"Continuous Light Snow","WIDTH":"35","HEIGHT":"18"},{"SYMBOLID":"WAS-WSS-MIP----","MAPPINGP":"5052","DESCRIPTION":"Intermittent Moderate Snow","WIDTH":"16","HEIGHT":"39"},{"SYMBOLID":"WAS-WSS-MCP----","MAPPINGP":"5053","DESCRIPTION":"Continuous Moderate Snow","WIDTH":"35","HEIGHT":"40"},{"SYMBOLID":"WAS-WSS-HIP----","MAPPINGP":"5054","DESCRIPTION":"Intermittent Heavy Snow","WIDTH":"16","HEIGHT":"60"},{"SYMBOLID":"WAS-WSS-HCP----","MAPPINGP":"5055","DESCRIPTION":"Continuous Heavy Snow","WIDTH":"35","HEIGHT":"60"},{"SYMBOLID":"WAS-WSSBLMP----","MAPPINGP":"5056","DESCRIPTION":"Light/Moderate Blowing Snow","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"WAS-WSSBH-P----","MAPPINGP":"5057","DESCRIPTION":"Heavy Blowing Snow","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"WAS-WSSG--P----","MAPPINGP":"5058","DESCRIPTION":"Snow Grains (SG)","WIDTH":"42","HEIGHT":"19"},{"SYMBOLID":"WAS-WSSSL-P----","MAPPINGP":"5059","DESCRIPTION":"Light Snow Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSSSMHP----","MAPPINGP":"5060","DESCRIPTION":"Moderate/Heavy Snow Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSGRL-P----","MAPPINGP":"5061","DESCRIPTION":"Hail - Light not Associated With Thunder","WIDTH":"12","HEIGHT":"28"},{"SYMBOLID":"WAS-WSGRMHP----","MAPPINGP":"5062","DESCRIPTION":"Hail - Moderate/Heavy not Associated With Thunder","WIDTH":"12","HEIGHT":"28"},{"SYMBOLID":"WAS-WSIC--P----","MAPPINGP":"5063","DESCRIPTION":"Ice Crystals (DD)","WIDTH":"50","HEIGHT":"14"},{"SYMBOLID":"WAS-WSPLL-P----","MAPPINGP":"5064","DESCRIPTION":"Light Ice Pellets","WIDTH":"24","HEIGHT":"19"},{"SYMBOLID":"WAS-WSPLM-P----","MAPPINGP":"5065","DESCRIPTION":"Moderate Ice Pellets","WIDTH":"33","HEIGHT":"30"},{"SYMBOLID":"WAS-WSPLH-P----","MAPPINGP":"5066","DESCRIPTION":"Heavy Ice Pellets","WIDTH":"34","HEIGHT":"41"},{"SYMBOLID":"WAS-WST-NPP----","MAPPINGP":"5067","DESCRIPTION":"Thunderstorm - No Precipitation","WIDTH":"49","HEIGHT":"42"},{"SYMBOLID":"WAS-WSTMR-P----","MAPPINGP":"5068","DESCRIPTION":"Thunderstorm Light to Moderate With Rain/Snow - No Hail","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTHR-P----","MAPPINGP":"5069","DESCRIPTION":"Thunderstorm Heavy With Rain/Snow - No Hail","WIDTH":"28","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTMH-P----","MAPPINGP":"5070","DESCRIPTION":"Thunderstorm Light to Moderate - With Hail","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTHH-P----","MAPPINGP":"5071","DESCRIPTION":"Thunderstorm Heavy - With Hail","WIDTH":"25","HEIGHT":"48"},{"SYMBOLID":"WAS-WST-SQP----","MAPPINGP":"5073","DESCRIPTION":"Squall","WIDTH":"24","HEIGHT":"28"},{"SYMBOLID":"WAS-WST-LGP----","MAPPINGP":"5074","DESCRIPTION":"Lightning","WIDTH":"32","HEIGHT":"42"},{"SYMBOLID":"WAS-WSFGPSP----","MAPPINGP":"5075","DESCRIPTION":"Fog - Shallow Patches","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGCSP----","MAPPINGP":"5076","MAPPINGA":"7","DESCRIPTION":"Fog - Shallow Continuous","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGP-P----","MAPPINGP":"5077","DESCRIPTION":"Fog - Patchy","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGSVP----","MAPPINGP":"5078","DESCRIPTION":"Fog - Sky Visible","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGSOP----","MAPPINGP":"5079","DESCRIPTION":"Fog - Sky Obscured","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGFVP----","MAPPINGP":"5080","DESCRIPTION":"Fog - Freezing, Sky Visible","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGFOP----","MAPPINGP":"5081","DESCRIPTION":"Fog - Freezing, Sky Not Visible","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WAS-WSBR--P----","MAPPINGP":"5082","DESCRIPTION":"Mist","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WSHZ--P----","MAPPINGP":"5084","DESCRIPTION":"Haze","WIDTH":"48","HEIGHT":"22"},{"SYMBOLID":"WAS-WSDSLMP----","MAPPINGP":"5085","DESCRIPTION":"Light to Moderate Dust/Sand Storm","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-WSDSS-P----","MAPPINGP":"5086","DESCRIPTION":"Severe Dust/Sand Storm","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-WSBD--P----","MAPPINGP":"349","MAPPINGA":"349","DESCRIPTION":"Blowing Dust or Sand","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WSTSD-P----","MAPPINGP":"5089","DESCRIPTION":"Tropical Depression","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"WAS-WSTSS-P----","MAPPINGP":"5090","DESCRIPTION":"Tropical Storm","WIDTH":"32","HEIGHT":"52"},{"SYMBOLID":"WAS-WSTSH-P----","MAPPINGP":"5091","DESCRIPTION":"Hurricane/Typhoon","WIDTH":"32","HEIGHT":"52"},{"SYMBOLID":"WAS-WSVE--P----","MAPPINGP":"5092","DESCRIPTION":"Volcanic Eruption","WIDTH":"31","HEIGHT":"37"},{"SYMBOLID":"WAS-WSVA--P----","MAPPINGP":"5093","DESCRIPTION":"Volcanic Ash","WIDTH":"26","HEIGHT":"27"},{"SYMBOLID":"WAS-WST-LVP----","MAPPINGP":"5094","DESCRIPTION":"Tropopause Level","WIDTH":"50","HEIGHT":"28"},{"SYMBOLID":"WAS-WSF-LVP----","MAPPINGP":"5095","DESCRIPTION":"Freezing Level","WIDTH":"50","HEIGHT":"28"},{"SYMBOLID":"WAS-WSUKP-P----","MAPPINGP":"5096","DESCRIPTION":"Precipitation of Unknown Type and Intensity","WIDTH":"48","HEIGHT":"25"},{"SYMBOLID":"WAS-GND-NCP----","MAPPINGP":"5097","DESCRIPTION":"Loose Sand","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNM---P----","MAPPINGP":"5098","DESCRIPTION":"Surface Moist","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNW-SWP----","MAPPINGP":"5099","DESCRIPTION":"Surface Wet, Standing Water in Small or Large Pools","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNFL--P----","MAPPINGP":"5100","DESCRIPTION":"Surface Flooded","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNFZ--P----","MAPPINGP":"5101","DESCRIPTION":"Surface Frozen","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNG-TIP----","MAPPINGP":"5102","DESCRIPTION":"Glaze (Thin Ice) on Ground","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNLDN-P----","MAPPINGP":"5103","DESCRIPTION":"Loose Dry Dust or Sand not Covering Ground Completely","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GNLDTCP----","MAPPINGP":"5104","DESCRIPTION":"Thin Loose Dry Dust or Sand Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNLDMCP----","MAPPINGP":"5105","DESCRIPTION":"Moderae/Thick Loose Dry Dust or Sand Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNDEWCP----","MAPPINGP":"5106","DESCRIPTION":"Extremely Dry With Cracks","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSCL-P----","MAPPINGP":"5108","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering Less than One-Half of Ground","WIDTH":"33","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSCH-P----","MAPPINGP":"5109","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering At Least One-Half Ground, but Ground not Completely Covered","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSCCEP----","MAPPINGP":"5110","DESCRIPTION":"Even Layer of Compact or Wet Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSCCUP----","MAPPINGP":"5111","DESCRIPTION":"Uneven Layer of Compact or Wet Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSLL-P----","MAPPINGP":"5112","DESCRIPTION":"Loose Dry Snow Covering Less than One-Half of Ground","WIDTH":"33","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSLH-P----","MAPPINGP":"5113","DESCRIPTION":"Loose Dry Snow Covering at Least One-Half Ground, but Ground not Completely Covered","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSLCEP----","MAPPINGP":"5114","DESCRIPTION":"Even Layer of Loose Dry Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSLCUP----","MAPPINGP":"5115","DESCRIPTION":"Uneven Layer of Loose Dry Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSDC-P----","MAPPINGP":"5116","DESCRIPTION":"Snow Covering Ground Completely; Deep Drifts","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WOS-IB----P----","MAPPINGP":"5117","DESCRIPTION":"Icebergs","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBM---P----","MAPPINGP":"5118","DESCRIPTION":"Many Icebergs","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-IBBS--P----","MAPPINGP":"5119","DESCRIPTION":"Belts and Strips","WIDTH":"36","HEIGHT":"10"},{"SYMBOLID":"WOS-IBG---P----","MAPPINGP":"5120","DESCRIPTION":"Iceberg - General","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBMG--P----","MAPPINGP":"5121","DESCRIPTION":"Many Icebergs - General","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBBB--P----","MAPPINGP":"5122","DESCRIPTION":"Bergy Bit","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-IBBBM-P----","MAPPINGP":"5123","DESCRIPTION":"Many Bergy Bits","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-IBGL--P----","MAPPINGP":"5124","DESCRIPTION":"Growler","WIDTH":"30","HEIGHT":"24"},{"SYMBOLID":"WOS-IBGLM-P----","MAPPINGP":"5125","DESCRIPTION":"Many Growlers","WIDTH":"30","HEIGHT":"24"},{"SYMBOLID":"WOS-IBF---P----","MAPPINGP":"5126","DESCRIPTION":"Floeberg","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-IBII--P----","MAPPINGP":"5127","DESCRIPTION":"Ice Island","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-ICWB--P----","MAPPINGP":"5128","DESCRIPTION":"Bergy Water","WIDTH":"48","HEIGHT":"17"},{"SYMBOLID":"WOS-ICWR--P----","MAPPINGP":"5129","DESCRIPTION":"Water With Radar Targets","WIDTH":"48","HEIGHT":"16"},{"SYMBOLID":"WOS-ICIF--P----","MAPPINGP":"5130","DESCRIPTION":"Ice Free","WIDTH":"36","HEIGHT":"14"},{"SYMBOLID":"WOS-IDC---P----","MAPPINGP":"5131","DESCRIPTION":"Convergence","WIDTH":"42","HEIGHT":"8"},{"SYMBOLID":"WOS-IDD---P----","MAPPINGP":"5132","DESCRIPTION":"Divergence","WIDTH":"42","HEIGHT":"8"},{"SYMBOLID":"WOS-IDS---P----","MAPPINGP":"5133","DESCRIPTION":"Shearing or Shear Zone","WIDTH":"20","HEIGHT":"18"},{"SYMBOLID":"WO-DIDID---L---","MAPPINGP":"5134","DESCRIPTION":"Ice Drift (Direction)","WIDTH":"20","HEIGHT":"8"},{"SYMBOLID":"WOS-II----P----","MAPPINGP":"5135","DESCRIPTION":"Sea Ice","WIDTH":"25","HEIGHT":"24"},{"SYMBOLID":"WOS-IITM--P----","MAPPINGP":"5136","DESCRIPTION":"Ice Thickness (Observed)","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"WOS-IITE--P----","MAPPINGP":"5137","DESCRIPTION":"Ice Thickness (Estimated)","WIDTH":"45","HEIGHT":"40"},{"SYMBOLID":"WOS-IIP---P----","MAPPINGP":"5138","DESCRIPTION":"Melt Puddles or Flooded Ice","WIDTH":"39","HEIGHT":"14"},{"SYMBOLID":"WOS-ISC---P----","MAPPINGP":"5139","DESCRIPTION":"Snow Cover","WIDTH":"17","HEIGHT":"29"},{"SYMBOLID":"WOS-ISS---P----","MAPPINGP":"5140","DESCRIPTION":"Sastrugi (With Orientation)","WIDTH":"29","HEIGHT":"44"},{"SYMBOLID":"WOS-ITRH--P----","MAPPINGP":"5141","DESCRIPTION":"Ridges or Hummocks","WIDTH":"36","HEIGHT":"18"},{"SYMBOLID":"WOS-ITR---P----","MAPPINGP":"5142","DESCRIPTION":"Rafting","WIDTH":"36","HEIGHT":"26"},{"SYMBOLID":"WOS-ITBB--P----","MAPPINGP":"5143","DESCRIPTION":"Jammed Brash Barrier","WIDTH":"36","HEIGHT":"18"},{"SYMBOLID":"WOS-HDS---P----","MAPPINGP":"5144","MAPPINGA":"404","DESCRIPTION":"Soundings","WIDTH":"30","HEIGHT":"32"},{"SYMBOLID":"WOS-HPB-O-P----","MAPPINGP":"5145","DESCRIPTION":"Berths (Onshore)","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-HPB-A-P----","MAPPINGP":"5146","DESCRIPTION":"Berths (Anchor)","WIDTH":"46","HEIGHT":"44"},{"SYMBOLID":"WOS-HPBA--P----","MAPPINGP":"5147","DESCRIPTION":"Anchorage","WIDTH":"46","HEIGHT":"44"},{"SYMBOLID":"WOS-HPCP--P----","MAPPINGP":"5148","DESCRIPTION":"Call in Point","WIDTH":"19","HEIGHT":"36"},{"SYMBOLID":"WOS-HPFH--P----","MAPPINGP":"5149","DESCRIPTION":"Fishing Harbor","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"WOS-HPFS--P----","MAPPINGP":"5150","DESCRIPTION":"Fish Stakes/Traps/Weirs","WIDTH":"34","HEIGHT":"32"},{"SYMBOLID":"WOS-HPFS---L---","MAPPINGP":"5151","DESCRIPTION":"Fish Stakes","WIDTH":"36","HEIGHT":"31"},{"SYMBOLID":"WOS-HPML--P----","MAPPINGP":"5152","DESCRIPTION":"Landing Place","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WO-DHPMO--P----","MAPPINGP":"5153","DESCRIPTION":"Offshore Loading Facility 1","WIDTH":"35","HEIGHT":"33"},{"SYMBOLID":"WO-DHPMO---L---","MAPPINGP":"5154","DESCRIPTION":"Offshore Loading Facility 2","WIDTH":"36","HEIGHT":"4"},{"SYMBOLID":"WOS-HPM-R-P----","MAPPINGP":"5155","MAPPINGA":"5156","DESCRIPTION":"Landing Ring","WIDTH":"36","HEIGHT":"20"},{"SYMBOLID":"WOS-HPM-FC-L---","MAPPINGP":"5157","DESCRIPTION":"Ferry Crossing","WIDTH":"38","HEIGHT":"10"},{"SYMBOLID":"WOS-HPM-CC-L---","MAPPINGP":"5158","DESCRIPTION":"Cable Ferry Crossing","WIDTH":"38","HEIGHT":"10"},{"SYMBOLID":"WOS-HPD---P----","MAPPINGP":"5159","MAPPINGA":"5160","DESCRIPTION":"Dolphin","WIDTH":"36","HEIGHT":"20"},{"SYMBOLID":"WOS-HABA--P----","MAPPINGP":"5161","DESCRIPTION":"Beacon","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WOS-HABB--P----","MAPPINGP":"5162","MAPPINGA":"5163","DESCRIPTION":"Buoy Default","WIDTH":"52","HEIGHT":"34"},{"SYMBOLID":"WOS-HABM--P----","MAPPINGP":"5164","DESCRIPTION":"Marker","WIDTH":"24","HEIGHT":"32"},{"SYMBOLID":"WOS-HABP--P----","MAPPINGP":"5165","DESCRIPTION":"Perches/Stakes","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"WOS-HAL---P----","MAPPINGP":"5166","DESCRIPTION":"Light","WIDTH":"40","HEIGHT":"36"},{"SYMBOLID":"WOS-HALV--P----","MAPPINGP":"5167","DESCRIPTION":"Light Vessel/Lightship","WIDTH":"36","HEIGHT":"32"},{"SYMBOLID":"WOS-HALH--P----","MAPPINGP":"5168","DESCRIPTION":"Lighthouse","WIDTH":"28","HEIGHT":"36"},{"SYMBOLID":"WOS-HHRS--P----","MAPPINGP":"5169","MAPPINGA":"5170","DESCRIPTION":"Rock Submerged","WIDTH":"26","HEIGHT":"26"},{"SYMBOLID":"WOS-HHRA--P----","MAPPINGP":"5171","DESCRIPTION":"Rock Awashed","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDF--P----","MAPPINGP":"5172","DESCRIPTION":"Foul Ground","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WO-DHHDK--P----","MAPPINGP":"5173","DESCRIPTION":"Kelp/Seaweed","WIDTH":"38","HEIGHT":"13"},{"SYMBOLID":"WOS-HHDMDBP----","MAPPINGP":"5174","DESCRIPTION":"Mine-Naval (Doubtful)","WIDTH":"24","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDMDFP----","MAPPINGP":"5175","DESCRIPTION":"Mine-Naval (Definite)","WIDTH":"24","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDS--P----","MAPPINGP":"5176","MAPPINGA":"5177","DESCRIPTION":"Snags/Stumps","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-HHDWA-P----","MAPPINGP":"5178","DESCRIPTION":"Wreck (Uncovers)","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"WOS-HHDWB-P----","MAPPINGP":"5179","MAPPINGA":"5180","DESCRIPTION":"Wreck (Submerged)","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-HHDE--P----","MAPPINGP":"5181","DESCRIPTION":"Eddies/Overfalls/Tide Rips","WIDTH":"59","HEIGHT":"20"},{"SYMBOLID":"WOS-BFC-S-P----","MAPPINGP":"5182","DESCRIPTION":"Sand","WIDTH":"28","HEIGHT":"37"},{"SYMBOLID":"WOS-BFC-M-P----","MAPPINGP":"5183","DESCRIPTION":"Mud","WIDTH":"38","HEIGHT":"26"},{"SYMBOLID":"WOS-BFC-CLP----","MAPPINGP":"5184","DESCRIPTION":"Clay","WIDTH":"36","HEIGHT":"30"},{"SYMBOLID":"WOS-BFC-SIP----","MAPPINGP":"5185","DESCRIPTION":"Silt","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"WOS-BFC-STP----","MAPPINGP":"5186","DESCRIPTION":"Stones","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"WOS-BFC-G-P----","MAPPINGP":"5187","DESCRIPTION":"Gravel","WIDTH":"40","HEIGHT":"42"},{"SYMBOLID":"WOS-BFC-P-P----","MAPPINGP":"5188","DESCRIPTION":"Pebbles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-BFC-CBP----","MAPPINGP":"5189","DESCRIPTION":"Cobbles","WIDTH":"36","HEIGHT":"26"},{"SYMBOLID":"WOS-BFC-R-P----","MAPPINGP":"5190","DESCRIPTION":"Rock","WIDTH":"30","HEIGHT":"34"},{"SYMBOLID":"WOS-BFC-COP----","MAPPINGP":"5191","DESCRIPTION":"Coral","WIDTH":"36","HEIGHT":"25"},{"SYMBOLID":"WOS-BFC-SHP----","MAPPINGP":"5192","DESCRIPTION":"Shell","WIDTH":"36","HEIGHT":"28"},{"SYMBOLID":"WOS-BFQ-F-P----","MAPPINGP":"5193","DESCRIPTION":"Fine","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WOS-BFQ-M-P----","MAPPINGP":"5194","DESCRIPTION":"Medium","WIDTH":"36","HEIGHT":"25"},{"SYMBOLID":"WOS-BFQ-C-P----","MAPPINGP":"5195","DESCRIPTION":"Coarse","WIDTH":"32","HEIGHT":"36"},{"SYMBOLID":"WOS-TCCW--P----","MAPPINGP":"5196","DESCRIPTION":"Water Turbulence","WIDTH":"60","HEIGHT":"21"},{"SYMBOLID":"WOS-TCCTD-P----","MAPPINGP":"5197","DESCRIPTION":"Tide Data Point","WIDTH":"30","HEIGHT":"36"},{"SYMBOLID":"WOS-TCCTG-P----","MAPPINGP":"5198","MAPPINGA":"5199","DESCRIPTION":"Tide Gauge","WIDTH":"33","HEIGHT":"20"},{"SYMBOLID":"WOS-MF----P----","MAPPINGP":"5200","DESCRIPTION":"Ford","WIDTH":"12","HEIGHT":"34"},{"SYMBOLID":"WOS-ML----P----","MAPPINGP":"5201","DESCRIPTION":"Lock","WIDTH":"22","HEIGHT":"26"},{"SYMBOLID":"WOS-MOA---P----","MAPPINGP":"5202","DESCRIPTION":"Oil/Gas Rig","WIDTH":"31","HEIGHT":"42"},{"SYMBOLID":"WOS-MPA---P----","MAPPINGP":"5203","DESCRIPTION":"Pile/Piling/Post","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*G*GPUY--****X","MAPPINGP":"2007","MAPPINGA":"3007","DESCRIPTION":"Sonobuoy","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUS--****X","MAPPINGP":"2020","MAPPINGA":"2020","DESCRIPTION":"Search","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPF---****X","MAPPINGP":"2040","MAPPINGA":"3040","DESCRIPTION":"Formation","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*GPH---****X","MAPPINGP":"2041","MAPPINGA":"3041","DESCRIPTION":"Harbor (General)","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPO---****X","MAPPINGP":"2046","MAPPINGA":"3046","DESCRIPTION":"Route","WIDTH":"36","HEIGHT":"24"},{"SYMBOLID":"G*G*GPPA--****X","MAPPINGP":"2091","MAPPINGA":"3091","DESCRIPTION":"Amnesty Point","WIDTH":"25","HEIGHT":"45"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.SymbolConstantsB={"SYMBOLCONSTANTS":{"SYMBOL":[{"SYMBOLID":"BS_BASIC_SHAPES","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Basic Shapes","HIERARCHY":"0.X","ALPHAHIERARCHY":"BS"},{"SYMBOLID":"BS_LINE--------","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line","HIERARCHY":"0.X.1","ALPHAHIERARCHY":"BS.LINE","PATH":"Basic Shapes"},{"SYMBOLID":"BS_AREA--------","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area","HIERARCHY":"0.X.2","ALPHAHIERARCHY":"BS.AREA","PATH":"Basic Shapes"},{"SYMBOLID":"BS_CROSS--------","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cross","HIERARCHY":"0.X.3","ALPHAHIERARCHY":"BS.CROSS","PATH":"Basic Shapes"},{"SYMBOLID":"BS_ELLIPSE-----","GEOMETRY":"area","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ellipse","HIERARCHY":"0.X.4","ALPHAHIERARCHY":"BS.ELLIPSE","PATH":"Basic Shapes"},{"SYMBOLID":"BS_RECTANGLE---","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Rectangle","HIERARCHY":"0.X.5","ALPHAHIERARCHY":"BS.RECTANGLE","PATH":"Basic Shapes"},{"SYMBOLID":"BUFFERED_SHAPES","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"AM.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6","ALPHAHIERARCHY":"BS.BBS"},{"SYMBOLID":"BBS_LINE-------","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Line","HIERARCHY":"0.X.6.1","ALPHAHIERARCHY":"BS.BBS.LINE"},{"SYMBOLID":"BBS_AREA-------","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6.2","ALPHAHIERARCHY":"BS.BBS.AREA"},{"SYMBOLID":"BBS_POINT------","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6.2","ALPHAHIERARCHY":"BS.BBS.POINT"},{"SYMBOLID":"BBS_RECTANGLE--","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Rectangle","HIERARCHY":"0.X.6.3","ALPHAHIERARCHY":"BS.BBS.RECT"},{"SYMBOLID":"G*-*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tactical Graphics","HIERARCHY":"2.X"},{"SYMBOLID":"G*T*------****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tasks","HIERARCHY":"2.X.1","PATH":"Tactical Graphics"},{"SYMBOLID":"G*T*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Block Task","HIERARCHY":"2.X.1.1","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*H-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Breach","HIERARCHY":"2.X.1.2","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*Y-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass","HIERARCHY":"2.X.1.3","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*C-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Canalize","HIERARCHY":"2.X.1.4","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*X-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Clear","HIERARCHY":"2.X.1.5","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*J-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Contain","HIERARCHY":"2.X.1.6","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*K-----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Counterattack (CATK)","HIERARCHY":"2.X.1.7","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*KF----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Counterattack by Fire","HIERARCHY":"2.X.1.7.1","PATH":"Tactical Graphics/Tasks/Counterattack (CATK)"},{"SYMBOLID":"G*T*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"W","DESCRIPTION":"Delay","HIERARCHY":"2.X.1.8","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*D-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Destroy","HIERARCHY":"2.X.1.9","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*T-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Disrupt Tasks","HIERARCHY":"2.X.1.10","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*F-----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Fix Task","HIERARCHY":"2.X.1.11","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*A-----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T","DESCRIPTION":"Follow and Assume","HIERARCHY":"2.X.1.12","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*AS----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Follow and Support","HIERARCHY":"2.X.1.12.1","PATH":"Tactical Graphics/Tasks/Follow and Assume"},{"SYMBOLID":"G*T*I-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Interdict","HIERARCHY":"2.X.1.13","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*E-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Isolate","HIERARCHY":"2.X.1.14","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*N-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Neutralize","HIERARCHY":"2.X.1.15","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*O-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Occupy","HIERARCHY":"2.X.1.16","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*P-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Penetrate","HIERARCHY":"2.X.1.17","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*R-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Relief in Place","HIERARCHY":"2.X.1.18","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*Q-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Retain","HIERARCHY":"2.X.1.19","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*M-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Retirement","HIERARCHY":"2.X.1.20","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*S-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Secure","HIERARCHY":"2.X.1.21","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*U-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Security","HIERARCHY":"2.X.1.22","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*US----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Screen","HIERARCHY":"2.X.1.22.1","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*UG----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Guard","HIERARCHY":"2.X.1.22.2","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*UC----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Cover","HIERARCHY":"2.X.1.22.3","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*Z-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Seize","HIERARCHY":"2.X.1.23","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*W-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Withdraw","HIERARCHY":"2.X.1.24","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*WP----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Withdraw Under Pressure","HIERARCHY":"2.X.1.24.1","PATH":"Tactical Graphics/Tasks/Withdraw"},{"SYMBOLID":"G*T*V-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Cordon and Search","HIERARCHY":"2.X.1.25","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*2-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Cordon and Knock","HIERARCHY":"2.X.1.26","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*G-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Suppress","HIERARCHY":"2.X.1.27","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*G*GPPN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.H.W.W1.N.","DESCRIPTION":"Entry Control Point","HIERARCHY":"2.X.1.28","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*G*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control and General Maneuver","HIERARCHY":"2.X.2","PATH":"Tactical Graphics"},{"SYMBOLID":"G*G*G-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"General","HIERARCHY":"2.X.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*GP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GPU---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Under Sea Warfare","HIERARCHY":"2.X.2.1.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPUU--****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Underwater","HIERARCHY":"2.X.2.1.1.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUUD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Datum","HIERARCHY":"2.X.2.1.1.1.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUB-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Brief Contact","HIERARCHY":"2.X.2.1.1.1.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUL-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Lost Contact","HIERARCHY":"2.X.2.1.1.1.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Sinker","HIERARCHY":"2.X.2.1.1.1.1.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUY--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy","HIERARCHY":"2.X.2.1.1.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUYP-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Pattern Center","HIERARCHY":"2.X.2.1.1.1.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Directional Frequency Analyzing and Recording (DIFAR)","HIERARCHY":"2.X.2.1.1.1.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYL-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Low Frequency Analyzing and Recording (LOFAR)","HIERARCHY":"2.X.2.1.1.1.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYC-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Command Active Sonobuoy System (CASS)","HIERARCHY":"2.X.2.1.1.1.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Directional Command Active Sonobuoy System (DICASS)","HIERARCHY":"2.X.2.1.1.1.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYB-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Bathythermograph Transmitting (BT)","HIERARCHY":"2.X.2.1.1.1.2.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy ANM","HIERARCHY":"2.X.2.1.1.1.2.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYV-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Vertical Line Array DIFAR (VLAD)","HIERARCHY":"2.X.2.1.1.1.2.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYT-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy ATAC","HIERARCHY":"2.X.2.1.1.1.2.9","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYR-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Range Only (RO)","HIERARCHY":"2.X.2.1.1.1.2.10","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYK-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Kingpin","HIERARCHY":"2.X.2.1.1.1.2.11","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search","HIERARCHY":"2.X.2.1.1.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUSA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search Area","HIERARCHY":"2.X.2.1.1.1.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPUSD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dip Position","HIERARCHY":"2.X.2.1.1.1.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPUSC-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search Center","HIERARCHY":"2.X.2.1.1.1.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPR---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Reference Point","HIERARCHY":"2.X.2.1.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPRS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Special Point","HIERARCHY":"2.X.2.1.1.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Nav Reference Point","HIERARCHY":"2.X.2.1.1.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"DLRP","HIERARCHY":"2.X.2.1.1.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRI--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Point of Interest","HIERARCHY":"2.X.2.1.1.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPW---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Weapon","HIERARCHY":"2.X.2.1.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPWA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Aim Point","HIERARCHY":"2.X.2.1.1.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Drop Point","HIERARCHY":"2.X.2.1.1.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Entry Point","HIERARCHY":"2.X.2.1.1.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWG--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ground Zero","HIERARCHY":"2.X.2.1.1.3.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"MSL Detect Point","HIERARCHY":"2.X.2.1.1.3.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWI--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Impact Point","HIERARCHY":"2.X.2.1.1.3.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Predicted Impact Point","HIERARCHY":"2.X.2.1.1.3.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Formation","HIERARCHY":"2.X.2.1.1.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.","DESCRIPTION":"Harbor General","HIERARCHY":"2.X.2.1.1.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPHQ--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point Q","HIERARCHY":"2.X.2.1.1.5.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point A","HIERARCHY":"2.X.2.1.1.5.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHY--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point Y","HIERARCHY":"2.X.2.1.1.5.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHX--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point X","HIERARCHY":"2.X.2.1.1.5.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route","HIERARCHY":"2.X.2.1.1.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPOZ--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Rendezvous","HIERARCHY":"2.X.2.1.1.6.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Diversions","HIERARCHY":"2.X.2.1.1.6.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Waypoint","HIERARCHY":"2.X.2.1.1.6.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route PIM","HIERARCHY":"2.X.2.1.1.6.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Point R","HIERARCHY":"2.X.2.1.1.6.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPA---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Air Control","HIERARCHY":"2.X.2.1.1.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPAP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Combat Air Patrol (CAP)","HIERARCHY":"2.X.2.1.1.7.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Airborne Early Warning (AEW)","HIERARCHY":"2.X.2.1.1.7.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAT--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control TACAN","HIERARCHY":"2.X.2.1.1.7.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAK--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Tanking","HIERARCHY":"2.X.2.1.1.7.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Antisubmarine Warfare- Fixed Wing","HIERARCHY":"2.X.2.1.1.7.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAH--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Antisubmarine Warfare- Rotary Wing","HIERARCHY":"2.X.2.1.1.7.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAO--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Tomcat","HIERARCHY":"2.X.2.1.1.7.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Rescue","HIERARCHY":"2.X.2.1.1.7.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAL--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Replenish","HIERARCHY":"2.X.2.1.1.7.9","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Marshall","HIERARCHY":"2.X.2.1.1.7.10","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Strike IP","HIERARCHY":"2.X.2.1.1.7.11","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Corridor TAB","HIERARCHY":"2.X.2.1.1.7.12","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.H1.T.W.W1.N.","DESCRIPTION":"Action Point","HIERARCHY":"2.X.2.1.1.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPPK--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Check Point","HIERARCHY":"2.X.2.1.1.8.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Contact Point","HIERARCHY":"2.X.2.1.1.8.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPO--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"N.","DESCRIPTION":"Coordination Point","HIERARCHY":"2.X.2.1.1.8.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Decision Point","HIERARCHY":"2.X.2.1.1.8.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPL--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Linkup Point","HIERARCHY":"2.X.2.1.1.8.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Passage Point","HIERARCHY":"2.X.2.1.1.8.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Rally Point","HIERARCHY":"2.X.2.1.1.8.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Release Point (RP)","HIERARCHY":"2.X.2.1.1.8.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Start Point (SP)","HIERARCHY":"2.X.2.1.1.8.9","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Waypoint","HIERARCHY":"2.X.2.1.1.8.10","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Amnesty Point","HIERARCHY":"2.X.2.1.1.8.11","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Points"},{"SYMBOLID":"G*G*GL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GLB---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"B.N.T.T1.","DESCRIPTION":"Boundary","HIERARCHY":"2.X.2.1.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Forward Line of Own Troops","HIERARCHY":"2.X.2.1.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"N.","DESCRIPTION":"Line of Contact (LC)","HIERARCHY":"2.X.2.1.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLP---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Phase Line","HIERARCHY":"2.X.2.1.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Light Line","HIERARCHY":"2.X.2.1.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GAG---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"General Area","HIERARCHY":"2.X.2.1.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Assembly Area","HIERARCHY":"2.X.2.1.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Engagement Area (General)","HIERARCHY":"2.X.2.1.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Fortified Area","HIERARCHY":"2.X.2.1.3.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Drop Zone","HIERARCHY":"2.X.2.1.3.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAX---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Extraction Zone","HIERARCHY":"2.X.2.1.3.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAL---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Landing Zone (LZ)","HIERARCHY":"2.X.2.1.3.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAP---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Pickup Zone (PZ)","HIERARCHY":"2.X.2.1.3.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAS---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Search Area/Reconnaissance Area","HIERARCHY":"2.X.2.1.3.9","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAY---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Limited Access Area","HIERARCHY":"2.X.2.1.3.10","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAZ---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Airfield Zone","HIERARCHY":"2.X.2.1.3.11","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*A-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Aviation","HIERARCHY":"2.X.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*AP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*APP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Air Control Point (ACP)","HIERARCHY":"2.X.2.2.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Communications Checkpoint (CCP)","HIERARCHY":"2.X.2.2.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APU---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pull-Up Point (PUP)","HIERARCHY":"2.X.2.2.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"N.","DESCRIPTION":"Downed Aircrew Pickup Point","HIERARCHY":"2.X.2.2.1.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*AL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*ALC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"H.H1.H2.T.T1.W.W1.","DESCRIPTION":"Air Corridor","HIERARCHY":"2.X.2.2.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"W.W1.H.H1.H2","DESCRIPTION":"Minimum Risk Route (MRR)","HIERARCHY":"2.X.2.2.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALS---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"H.H1.H2.T.","DESCRIPTION":"Standard-Use Army Aircraft Flight Route (SAAFR)","HIERARCHY":"2.X.2.2.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALU---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"W.W1.H.H1.H2","DESCRIPTION":"Unmanned Aerial Vehicle (UAV) Route","HIERARCHY":"2.X.2.2.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"W.W1.T.H.H1.H2.","DESCRIPTION":"Low Level Transit Route (LLTR)","HIERARCHY":"2.X.2.2.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*AA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*AAR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"Restricted Operations Zone (ROZ)","HIERARCHY":"2.X.2.2.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"Forward Area Air Defense Zone (FAADEZ)","HIERARCHY":"2.X.2.2.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAH---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"High Density Airspace Control Zone (HIDACZ)","HIERARCHY":"2.X.2.2.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAM---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"Missile Engagement Zone (MEZ)","HIERARCHY":"2.X.2.2.3.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAML--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"Low Altitude MEZ","HIERARCHY":"2.X.2.2.3.4.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas/Missile Engagement Zone (MEZ)"},{"SYMBOLID":"G*G*AAMH--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.T.W.W1.","DESCRIPTION":"High Altitude MEZ","HIERARCHY":"2.X.2.2.3.4.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas/Missile Engagement Zone (MEZ)"},{"SYMBOLID":"G*G*AAW---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Weapons Free Zone","HIERARCHY":"2.X.2.2.3.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*P-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Deception","HIERARCHY":"2.X.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*PD----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Dummy (Deception/Decoy)","HIERARCHY":"2.X.2.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PA----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Axis of Advance for Feint","HIERARCHY":"2.X.2.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PF----****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Direction of Attack for Feint","HIERARCHY":"2.X.2.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PM----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Decoy Mined Area","HIERARCHY":"2.X.2.3.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PY----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Decoy Mined Area, Fenced","HIERARCHY":"2.X.2.3.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PN----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dummy Minefield - Static","HIERARCHY":"2.X.2.3.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PC----****X","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.N.","DESCRIPTION":"Dummy Minefield - Dynamic","HIERARCHY":"2.X.2.3.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*D-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Defense","HIERARCHY":"2.X.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*DP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.4.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DPT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Target Reference","HIERARCHY":"2.X.2.4.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points"},{"SYMBOLID":"G*G*DPO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Observation Post (OP)/Outpost","HIERARCHY":"2.X.2.4.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points"},{"SYMBOLID":"G*G*DPOC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Combat Outpost","HIERARCHY":"2.X.2.4.1.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Observation Post Occupied Dismounted Recon","HIERARCHY":"2.X.2.4.1.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOF--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Forward Observer Position Outpost","HIERARCHY":"2.X.2.4.1.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sensor Outpost/Listening Post (OP/LP)","HIERARCHY":"2.X.2.4.1.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPON--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"NBC Observation Post Dismounted","HIERARCHY":"2.X.2.4.1.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.4.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Forward Edge of Battle Area","HIERARCHY":"2.X.2.4.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Lines"},{"SYMBOLID":"G*G*DLP---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Principal Direction of Fire (PDF)","HIERARCHY":"2.X.2.4.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Lines"},{"SYMBOLID":"G*G*DA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.4.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DAB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.N.T.","DESCRIPTION":"Battle Position","HIERARCHY":"2.X.2.4.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas"},{"SYMBOLID":"G*G*DABP--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.N.T.","DESCRIPTION":"Battle Position Prepared but not Occupied","HIERARCHY":"2.X.2.4.3.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas/Battle Position"},{"SYMBOLID":"G*G*DAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Engagement Area (Defense)","HIERARCHY":"2.X.2.4.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas"},{"SYMBOLID":"G*G*O-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Offense","HIERARCHY":"2.X.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*OP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.5.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OPP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Point of Departure","HIERARCHY":"2.X.2.5.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Points"},{"SYMBOLID":"G*G*OL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.5.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OLA---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Axis of Advance","HIERARCHY":"2.X.2.5.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLAV--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Aviation","HIERARCHY":"2.X.2.5.2.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAA--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Axis of Advance Airborne","HIERARCHY":"2.X.2.5.2.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAR--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Attack, Rotary Wing","HIERARCHY":"2.X.2.5.2.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAG--****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Axis of Advance Ground","HIERARCHY":"2.X.2.5.2.1.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAGM-****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Ground Main Attack","HIERARCHY":"2.X.2.5.2.1.4.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance/Axis of Advance Ground"},{"SYMBOLID":"G*G*OLAGS-****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Ground Supporting Attack","HIERARCHY":"2.X.2.5.2.1.4.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance/Axis of Advance Ground"},{"SYMBOLID":"G*G*OLK---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Direction of Attack","HIERARCHY":"2.X.2.5.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLKA--****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"N.","DESCRIPTION":"Direction of Attack Aviation","HIERARCHY":"2.X.2.5.2.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack"},{"SYMBOLID":"G*G*OLKG--****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Direction of Attack Ground","HIERARCHY":"2.X.2.5.2.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack"},{"SYMBOLID":"G*G*OLKGM-****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Direction of Attack Ground Main Attack","HIERARCHY":"2.X.2.5.2.2.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack/Direction of Attack Ground"},{"SYMBOLID":"G*G*OLKGS-****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Direction of Attack Ground Supporting Attack","HIERARCHY":"2.X.2.5.2.2.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack/Direction of Attack Ground"},{"SYMBOLID":"G*G*OLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Final Coordination Line","HIERARCHY":"2.X.2.5.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLI---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Infiltration Lane","HIERARCHY":"2.X.2.5.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Limit Of Advance (LOA)","HIERARCHY":"2.X.2.5.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLT---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line of Departure (LD)","HIERARCHY":"2.X.2.5.2.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line of Departure/Line of Contact (LD/LC)","HIERARCHY":"2.X.2.5.2.7","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLP---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Probable Line of Deployment (PLD)","HIERARCHY":"2.X.2.5.2.8","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.5.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Assault Position","HIERARCHY":"2.X.2.5.3.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAK---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Attack Position","HIERARCHY":"2.X.2.5.3.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAF---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Attack by Fire Position","HIERARCHY":"2.X.2.5.3.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAS---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Support by Fire Position","HIERARCHY":"2.X.2.5.3.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAO---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Objective","HIERARCHY":"2.X.2.5.3.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAP---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Penetration Box","HIERARCHY":"2.X.2.5.3.6","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*S-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Special","HIERARCHY":"2.X.2.6","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*SL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Line","HIERARCHY":"2.X.2.6.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special"},{"SYMBOLID":"G*G*SLA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ambush","HIERARCHY":"2.X.2.6.1.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLH---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Holding Line","HIERARCHY":"2.X.2.6.1.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Release Line","HIERARCHY":"2.X.2.6.1.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLB---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Bridgehead","HIERARCHY":"2.X.2.6.1.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Area","HIERARCHY":"2.X.2.6.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special"},{"SYMBOLID":"G*G*SAO---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area of Operations (AO)","HIERARCHY":"2.X.2.6.2.1","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Airhead","HIERARCHY":"2.X.2.6.2.2","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Encirclement","HIERARCHY":"2.X.2.6.2.3","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAN---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Named Area of Interest (NAI)","HIERARCHY":"2.X.2.6.2.4","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAT---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Targeted Area of Interest (TAI)","HIERARCHY":"2.X.2.6.2.5","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*M*------****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mobility/Survivability","HIERARCHY":"2.X.3","PATH":"Tactical Graphics"},{"SYMBOLID":"G*M*O-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacles","HIERARCHY":"2.X.3.1","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*OG----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"General (Obstacles)","HIERARCHY":"2.X.3.1.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OGB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.T1.","DESCRIPTION":"Obstacle Belt","HIERARCHY":"2.X.3.1.1.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Obstacle Line","HIERARCHY":"2.X.3.1.1.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGZ---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Obstacle Zone","HIERARCHY":"2.X.3.1.1.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Obstacle Free Area","HIERARCHY":"2.X.3.1.1.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Obstacle Restricted Area","HIERARCHY":"2.X.3.1.1.5","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OS----****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Abatis","HIERARCHY":"2.X.3.1.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OA----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Obstacles","HIERARCHY":"2.X.3.1.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OAD---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Ditch","HIERARCHY":"2.X.3.1.3.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OADU--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Under Construction","HIERARCHY":"2.X.3.1.3.1.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Ditch"},{"SYMBOLID":"G*M*OADC--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Complete","HIERARCHY":"2.X.3.1.3.1.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Ditch"},{"SYMBOLID":"G*M*OAR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Reinforced with Antitank Mines","HIERARCHY":"2.X.3.1.3.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OAO---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles","HIERARCHY":"2.X.3.1.3.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OAOF--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Fixed and Prefabricated","HIERARCHY":"2.X.3.1.3.3.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAOM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Moveable","HIERARCHY":"2.X.3.1.3.3.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAOP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Moveable and Prefabricated","HIERARCHY":"2.X.3.1.3.3.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAW---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Wall","HIERARCHY":"2.X.3.1.3.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OB----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Booby Trap","HIERARCHY":"2.X.3.1.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OM----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mines","HIERARCHY":"2.X.3.1.5","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OMU---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Unspecified Mine","HIERARCHY":"2.X.3.1.5.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine","HIERARCHY":"2.X.3.1.5.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine With Antihandling Device","HIERARCHY":"2.X.3.1.5.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OME---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine, Directional","HIERARCHY":"2.X.3.1.5.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antipersonnel Mine","HIERARCHY":"2.X.3.1.5.5","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMW---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wide Area Mines","HIERARCHY":"2.X.3.1.5.6","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMC---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Mine Cluster","HIERARCHY":"2.X.3.1.5.7","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OF----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Minefields","HIERARCHY":"2.X.3.1.6","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OFS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.W.","DESCRIPTION":"Minefield (Static)","HIERARCHY":"2.X.3.1.6.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.N.W.","DESCRIPTION":"Minefield (Dynamic)","HIERARCHY":"2.X.3.1.6.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFG---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","MODIFIERS":"W.W1.","DESCRIPTION":"Minefields Gap","HIERARCHY":"2.X.3.1.6.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Mined Area","HIERARCHY":"2.X.3.1.6.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OE----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Effect","HIERARCHY":"2.X.3.1.7","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OEB---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Block Obstacle Effect","HIERARCHY":"2.X.3.1.7.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OEF---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Fix (Obstacle Effect)","HIERARCHY":"2.X.3.1.7.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OET---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Turn","HIERARCHY":"2.X.3.1.7.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OED---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Disrupt Obstacle Effect","HIERARCHY":"2.X.3.1.7.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OU----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Unexploded Ordnance Area (UXO)","HIERARCHY":"2.X.3.1.8","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OR----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Roadblocks, Craters, and Blown Bridges","HIERARCHY":"2.X.3.1.9","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*ORP---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Planned","HIERARCHY":"2.X.3.1.9.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORS---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Explosives State of Readiness 1 (Safe)","HIERARCHY":"2.X.3.1.9.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Explosives State of Readiness 2 (Armed - but Passable)","HIERARCHY":"2.X.3.1.9.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORC---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Roadblock Complete (Executed)","HIERARCHY":"2.X.3.1.9.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*OT----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Trip Wire","HIERARCHY":"2.X.3.1.10","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OW----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Wire Obstacle","HIERARCHY":"2.X.3.1.11","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OWU---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Unspecified","HIERARCHY":"2.X.3.1.11.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWS---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Single Fence","HIERARCHY":"2.X.3.1.11.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWD---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Fence","HIERARCHY":"2.X.3.1.11.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWA---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Apron Fence","HIERARCHY":"2.X.3.1.11.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Low Wire Fence","HIERARCHY":"2.X.3.1.11.5","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWH---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle High Wire Fence","HIERARCHY":"2.X.3.1.11.6","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWC---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Concertina","HIERARCHY":"2.X.3.1.11.7","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWCS--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Single Concertina","HIERARCHY":"2.X.3.1.11.7.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*OWCD--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Strand Concertina","HIERARCHY":"2.X.3.1.11.7.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*OWCT--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Triple Strand Concertina","HIERARCHY":"2.X.3.1.11.7.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Bypass","HIERARCHY":"2.X.3.2","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*BD----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Bypass Difficulty","HIERARCHY":"2.X.3.2.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass"},{"SYMBOLID":"G*M*BDE---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Easy","HIERARCHY":"2.X.3.2.1.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BDD---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Difficult","HIERARCHY":"2.X.3.2.1.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BDI---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Impossible","HIERARCHY":"2.X.3.2.1.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Crossing Site/Water Crossing","HIERARCHY":"2.X.3.2.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass"},{"SYMBOLID":"G*M*BCA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Assault Crossing Area","HIERARCHY":"2.X.3.2.2.1","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCB---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Bridge or Gap","HIERARCHY":"2.X.3.2.2.2","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCF---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Ferry","HIERARCHY":"2.X.3.2.2.3","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCE---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ford Easy","HIERARCHY":"2.X.3.2.2.4","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCD---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ford Difficult","HIERARCHY":"2.X.3.2.2.5","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCL---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Lane","HIERARCHY":"2.X.3.2.2.6","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCR---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Raft Site","HIERARCHY":"2.X.3.2.2.7","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Engineer Regulating Point","HIERARCHY":"2.X.3.2.2.8","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*S-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Survivability","HIERARCHY":"2.X.3.3","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*SE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Earthwork, Small Trench or Fortification","HIERARCHY":"2.X.3.3.1","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SF----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fort","HIERARCHY":"2.X.3.3.2","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SL----****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Fortified Line","HIERARCHY":"2.X.3.3.3","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SW----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Foxhole, Emplacement or Weapon Site","HIERARCHY":"2.X.3.3.4","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SP----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.T.","DESCRIPTION":"Strong Point","HIERARCHY":"2.X.3.3.5","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SS----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Shelter","HIERARCHY":"2.X.3.3.6","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SU----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underground Shelter","HIERARCHY":"2.X.3.3.7","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*N-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Nuclear, Biological, and Chemical","HIERARCHY":"2.X.3.4","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*NM----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Minimum Safe Distance Zones","HIERARCHY":"2.X.3.4.1","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NZ----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"C.H.N.Q.T.V.W.Y.","DESCRIPTION":"Nuclear Detonations Ground Zero","HIERARCHY":"2.X.3.4.2","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NF----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fallout Producing","HIERARCHY":"2.X.3.4.3","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NR----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Radioactive Area","HIERARCHY":"2.X.3.4.4","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NB----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Biologically Contaminated Area","HIERARCHY":"2.X.3.4.5","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NC----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Chemically Contaminated Area","HIERARCHY":"2.X.3.4.6","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NE----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Release Events","HIERARCHY":"2.X.3.4.7","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NEB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.Q.T.W.Y.","DESCRIPTION":"Biological Event","HIERARCHY":"2.X.3.4.7.1","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Release Events"},{"SYMBOLID":"G*M*NEC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.Q.T.W.Y.","DESCRIPTION":"Chemical Event","HIERARCHY":"2.X.3.4.7.2","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Release Events"},{"SYMBOLID":"G*M*ND----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Decontamination (DECON) Points","HIERARCHY":"2.X.3.4.8","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NDP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Unspecified","HIERARCHY":"2.X.3.4.8.1","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDA---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Alternate Decon Site/Point Unspecified","HIERARCHY":"2.X.3.4.8.2","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Troops","HIERARCHY":"2.X.3.4.8.3","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDE---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Equipment","HIERARCHY":"2.X.3.4.8.4","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Equipment and Troops","HIERARCHY":"2.X.3.4.8.5","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Operational Decontamination","HIERARCHY":"2.X.3.4.8.6","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Thorough Decontamination","HIERARCHY":"2.X.3.4.8.7","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NL----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Dose Rate Contour Lines","HIERARCHY":"2.X.3.4.9","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*F*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fire Support","HIERARCHY":"2.X.4","PATH":"Tactical Graphics"},{"SYMBOLID":"G*F*P-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.4.1","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*PT----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target","HIERARCHY":"2.X.4.1.1","PATH":"Tactical Graphics/Fire Support/Points"},{"SYMBOLID":"G*F*PTS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.H1.T.","DESCRIPTION":"Point/Single Target","HIERARCHY":"2.X.4.1.1.1","PATH":"Tactical Graphics/Fire Support/Points/Target"},{"SYMBOLID":"G*F*PTN---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Nuclear Target","HIERARCHY":"2.X.4.1.1.2","PATH":"Tactical Graphics/Fire Support/Points/Target"},{"SYMBOLID":"G*F*PC----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control","HIERARCHY":"2.X.4.1.2","PATH":"Tactical Graphics/Fire Support/Points"},{"SYMBOLID":"G*F*PCF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Fire Support Station","HIERARCHY":"2.X.4.1.2.1","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Survey Control Point","HIERARCHY":"2.X.4.1.2.2","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Firing Point","HIERARCHY":"2.X.4.1.2.3","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCR---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Reload Point","HIERARCHY":"2.X.4.1.2.4","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Hide Point","HIERARCHY":"2.X.4.1.2.5","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCL---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Launch Point","HIERARCHY":"2.X.4.1.2.6","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.4.2","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*LT----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Linear Target","HIERARCHY":"2.X.4.2.1","PATH":"Tactical Graphics/Fire Support/Lines"},{"SYMBOLID":"G*F*LTS---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Linear Smoke Target","HIERARCHY":"2.X.4.2.1.1","PATH":"Tactical Graphics/Fire Support/Lines/Linear Target"},{"SYMBOLID":"G*F*LTF---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.T1.","DESCRIPTION":"Final Protective Fire","HIERARCHY":"2.X.4.2.1.2","PATH":"Tactical Graphics/Fire Support/Lines/Linear Target"},{"SYMBOLID":"G*F*LC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control Lines","HIERARCHY":"2.X.4.2.2","PATH":"Tactical Graphics/Fire Support/Lines"},{"SYMBOLID":"G*F*LCF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Fire Support Coordination Line","HIERARCHY":"2.X.4.2.2.1","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Coordinated Fire Line (CFL)","HIERARCHY":"2.X.4.2.2.2","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCN---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"No-Fire Line (NFL)","HIERARCHY":"2.X.4.2.2.3","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Restrictive Fire Line (RFL)","HIERARCHY":"2.X.4.2.2.4","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"W.W1.","DESCRIPTION":"Munition Flight Path (MFP)","HIERARCHY":"2.X.4.2.2.5","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*A-----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.4.3","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*AT----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area Target","HIERARCHY":"2.X.4.3.1","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*ATR---****X","GEOMETRY":"area","DRAWCATEGORY":"17","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.AM.AN.","DESCRIPTION":"Rectangular Target","HIERARCHY":"2.X.4.3.1.1","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATC---****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.AM.","DESCRIPTION":"Circular Target","HIERARCHY":"2.X.4.3.1.2","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATG---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Group of Targets","HIERARCHY":"2.X.4.3.1.3","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATS---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.","DESCRIPTION":"Smoke Area","HIERARCHY":"2.X.4.3.1.4","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bomb Area","HIERARCHY":"2.X.4.3.1.5","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*AC----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control Areas","HIERARCHY":"2.X.4.3.2","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*ACS---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"T.W.W1.","DESCRIPTION":"Fire Support Area (FSA)","HIERARCHY":"2.X.4.3.2.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACSI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Fire Support Area (FSA) Irregular","HIERARCHY":"2.X.4.3.2.1.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACSR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.H.AM.","DESCRIPTION":"Fire Support Area (FSA) Rectangular","HIERARCHY":"2.X.4.3.2.1.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACSC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Fire Support Area (FSA) Circular","HIERARCHY":"2.X.4.3.2.1.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACA---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Airspace Coordination Area (ACA)","HIERARCHY":"2.X.4.3.2.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACAI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.H2.T.W.W1.","DESCRIPTION":"Airspace Coordination Area (ACA) Irregular","HIERARCHY":"2.X.4.3.2.2.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACAR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.H.H1.H2.W.W1.AM.","DESCRIPTION":"Airspace Coordination Area (ACA) Rectangular","HIERARCHY":"2.X.4.3.2.2.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACAC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.H.H1.H2.W.W1.AM.","DESCRIPTION":"Airspace Coordination Area (ACA) Circular","HIERARCHY":"2.X.4.3.2.2.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACF---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"T.W.W1.","DESCRIPTION":"Free Fire Area (FFA)","HIERARCHY":"2.X.4.3.2.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACFI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Free Fire Area (FFA) Irregular","HIERARCHY":"2.X.4.3.2.3.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACFR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Free Fire Area (FFA) Rectangular","HIERARCHY":"2.X.4.3.2.3.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACFC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Free Fire Area (FFA) Circular","HIERARCHY":"2.X.4.3.2.3.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACN---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"NFA Shapes","HIERARCHY":"2.X.4.3.2.4","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACNI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"No-Fire Area (NFA) Irregular","HIERARCHY":"2.X.4.3.2.4.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA) Shapes"},{"SYMBOLID":"G*F*ACNR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"No-Fire Area (NFA) Rectangular","HIERARCHY":"2.X.4.3.2.4.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA) Shapes"},{"SYMBOLID":"G*F*ACNC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"No-Fire Area (NFA) Circular","HIERARCHY":"2.X.4.3.2.4.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA) Shapes"},{"SYMBOLID":"G*F*ACR---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"RFA Shapes","HIERARCHY":"2.X.4.3.2.5","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACRI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Restrictive Fire Area (RFA) Irregular","HIERARCHY":"2.X.4.3.2.5.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA) Shapes"},{"SYMBOLID":"G*F*ACRR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Restrictive Fire Area (RFA) Rectangular","HIERARCHY":"2.X.4.3.2.5.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA) Shapes"},{"SYMBOLID":"G*F*ACRC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Restrictive Fire Area (RFA) Circular","HIERARCHY":"2.X.4.3.2.5.3","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA) Shapes"},{"SYMBOLID":"G*F*ACP---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Position Area for Artillery (PAA)","HIERARCHY":"2.X.4.3.2.6","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACPR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"AM.","DESCRIPTION":"Position Area for Artillery (PAA) Rectangular","HIERARCHY":"2.X.4.3.2.6.1","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Position Area for Artillery (PAA)"},{"SYMBOLID":"G*F*ACPC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"AM.","DESCRIPTION":"Position Area For Artillery (PAA) Circular","HIERARCHY":"2.X.4.3.2.6.2","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Position Area for Artillery (PAA)"},{"SYMBOLID":"G*F*AZ----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Acquisition Zones","HIERARCHY":"2.X.4.3.3","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*AZI---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"ATI Shapes","HIERARCHY":"2.X.4.3.3.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZII--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Irregular","HIERARCHY":"2.X.4.3.3.1.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI) Shapes"},{"SYMBOLID":"G*F*AZIR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Rectangular","HIERARCHY":"2.X.4.3.3.1.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI) Shapes"},{"SYMBOLID":"G*F*AZIC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Circular","HIERARCHY":"2.X.4.3.3.1.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI) Shapes"},{"SYMBOLID":"G*F*AZX---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Call for Fire Zone","HIERARCHY":"2.X.4.3.3.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZXI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Call For Fire Zone (CFFZ) Irregular","HIERARCHY":"2.X.4.3.3.2.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone"},{"SYMBOLID":"G*F*AZXR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Call For Fire Zone (CFFZ) Rectangular","HIERARCHY":"2.X.4.3.3.2.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone"},{"SYMBOLID":"G*F*AZXC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM","DESCRIPTION":"Call For Fire Zone (CFFZ) Circular","HIERARCHY":"2.X.4.3.3.2.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone"},{"SYMBOLID":"G*F*AZS---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Sensor Shapes","HIERARCHY":"2.X.4.3.3.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZSI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Sensor Zone Irregular","HIERARCHY":"2.X.4.3.3.3.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Sensor Zone Shapes"},{"SYMBOLID":"G*F*AZSR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Sensor Zone Rectangular","HIERARCHY":"2.X.4.3.3.3.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Sensor Zone Shapes"},{"SYMBOLID":"G*F*AZSC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Sensor Zone Circular","HIERARCHY":"2.X.4.3.3.3.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Sensor Zone Shapes"},{"SYMBOLID":"G*F*AZC---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Censor Shapes","HIERARCHY":"2.X.4.3.3.4","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZCI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Censor Zone Irregular","HIERARCHY":"2.X.4.3.3.4.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Shapes"},{"SYMBOLID":"G*F*AZCR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM","DESCRIPTION":"Censor Zone Rectangular","HIERARCHY":"2.X.4.3.3.4.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Shapes"},{"SYMBOLID":"G*F*AZCC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Censor Zone Circular","HIERARCHY":"2.X.4.3.3.4.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Shapes"},{"SYMBOLID":"G*F*AZD---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dead Space Area","HIERARCHY":"2.X.4.3.3.5","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZDI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Dead Space Area (DA) Irregular","HIERARCHY":"2.X.4.3.3.5.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Dead Space Area"},{"SYMBOLID":"G*F*AZDR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Dead Space Area (DA) Rectangular","HIERARCHY":"2.X.4.3.3.5.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Dead Space Area"},{"SYMBOLID":"G*F*AZDC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Dead Space Area (DA) Circular","HIERARCHY":"2.X.4.3.3.5.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Dead Space Area"},{"SYMBOLID":"G*F*AZF---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Critical Friendly Zone Shapes","HIERARCHY":"2.X.4.3.3.6","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZFI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Critical Friendly Zone (CFZ) Irregular","HIERARCHY":"2.X.4.3.3.6.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone Shapes"},{"SYMBOLID":"G*F*AZFR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Critical Friendly Zone (CFZ) Rectangular","HIERARCHY":"2.X.4.3.3.6.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone Shapes"},{"SYMBOLID":"G*F*AZFC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Critical Friendly Zone (CFZ) Circular","HIERARCHY":"2.X.4.3.3.6.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone Shapes"},{"SYMBOLID":"G*F*AZZ---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Zone of Responsibility","HIERARCHY":"2.X.4.3.3.7","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZZI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Zone Of Responsibility (ZOR) Irregular","HIERARCHY":"2.X.4.3.3.7.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Zone Of Responsibility (ZOR) "},{"SYMBOLID":"G*F*AZZR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Zone Of Responsibility (ZOR) Rectangular","HIERARCHY":"2.X.4.3.3.7.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Zone Of Responsibility (ZOR) "},{"SYMBOLID":"G*F*AZZC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Zone Of Responsibility (ZOR) Circular","HIERARCHY":"2.X.4.3.3.7.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Zone Of Responsibility (ZOR) "},{"SYMBOLID":"G*F*AZB---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Build-Up Area (TBA) ","HIERARCHY":"2.X.4.3.3.8","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZBI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Target Build-Up Area (TBA) Irregular","HIERARCHY":"2.X.4.3.3.8.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Build-Up Area (TBA) "},{"SYMBOLID":"G*F*AZBR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Target Build-Up Area (TBA) Rectangular","HIERARCHY":"2.X.4.3.3.8.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Build-Up Area (TBA) "},{"SYMBOLID":"G*F*AZBC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Target Build-Up Area (TBA) Circular","HIERARCHY":"2.X.4.3.3.8.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Build-Up Area (TBA) "},{"SYMBOLID":"G*F*AZV---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Value Area (TVAR) ","HIERARCHY":"2.X.4.3.3.9","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZVI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Target Value Area (TVAR) Irregular","HIERARCHY":"2.X.4.3.3.9.1","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Value Area (TVAR) "},{"SYMBOLID":"G*F*AZVR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Target Value Area (TVAR) Rectangular","HIERARCHY":"2.X.4.3.3.9.2","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Value Area (TVAR) "},{"SYMBOLID":"G*F*AZVC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Target Value Area (TVAR) Circular","HIERARCHY":"2.X.4.3.3.9.3","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Target Value Area (TVAR) "},{"SYMBOLID":"G*F*AX----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Radar Range Fans","HIERARCHY":"2.X.4.3.4","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*AXC---****X","GEOMETRY":"area","DRAWCATEGORY":"19","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.AM.","DESCRIPTION":"Circular Range Fan","HIERARCHY":"2.X.4.3.4.1","PATH":"Tactical Graphics/Fire Support/Areas/Radar Range Fans"},{"SYMBOLID":"G*F*AXS---****X","GEOMETRY":"area","DRAWCATEGORY":"18","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.AM.AN.","DESCRIPTION":"Sector Range Fan","HIERARCHY":"2.X.4.3.4.2","PATH":"Tactical Graphics/Fire Support/Areas/Radar Range Fans"},{"SYMBOLID":"G*S*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Combat Service Support","HIERARCHY":"2.X.5","PATH":"Tactical Graphics"},{"SYMBOLID":"G*S*P-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.5.1","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*PX----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.T1.W.W1.N.","DESCRIPTION":"Ambulance Exchange Point","HIERARCHY":"2.X.5.1.1","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PC----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Cannibalization Point","HIERARCHY":"2.X.5.1.2","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PY----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Casualty Collection Point","HIERARCHY":"2.X.5.1.3","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PT----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Civilian Collection Point","HIERARCHY":"2.X.5.1.4","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PD----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Detainee Collection Point","HIERARCHY":"2.X.5.1.5","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Enemy Prisoner of War Collection Point","HIERARCHY":"2.X.5.1.6","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PL----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Logistics Release Point","HIERARCHY":"2.X.5.1.7","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Maintenance Collection Point","HIERARCHY":"2.X.5.1.8","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PR----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Rearm, Refuel and Resupply Point","HIERARCHY":"2.X.5.1.9","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PU----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Refuel on the Move Point","HIERARCHY":"2.X.5.1.10","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Traffic Control Point (TCP)","HIERARCHY":"2.X.5.1.11","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PI----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Trailer Transfer Point","HIERARCHY":"2.X.5.1.12","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PN----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Unit Maintenance Collection Point","HIERARCHY":"2.X.5.1.13","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PS----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Supply Points","HIERARCHY":"2.X.5.1.14","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PSZ---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point General","HIERARCHY":"2.X.5.1.14.1","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSA---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class I","HIERARCHY":"2.X.5.1.14.2","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class II","HIERARCHY":"2.X.5.1.14.3","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class III","HIERARCHY":"2.X.5.1.14.4","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class IV","HIERARCHY":"2.X.5.1.14.5","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSE---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class V","HIERARCHY":"2.X.5.1.14.6","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VI","HIERARCHY":"2.X.5.1.14.7","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSG---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VII","HIERARCHY":"2.X.5.1.14.8","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VIII","HIERARCHY":"2.X.5.1.14.9","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSI---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class IX","HIERARCHY":"2.X.5.1.14.10","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSJ---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class X","HIERARCHY":"2.X.5.1.14.11","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PA----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ammunition Points","HIERARCHY":"2.X.5.1.15","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PAS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Ammunition Supply Point (ASP)","HIERARCHY":"2.X.5.1.15.1","PATH":"Tactical Graphics/Combat Service Support/Points/Ammunition Points"},{"SYMBOLID":"G*S*PAT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Ammunition Transfer Point (ATP)","HIERARCHY":"2.X.5.1.15.2","PATH":"Tactical Graphics/Combat Service Support/Points/Ammunition Points"},{"SYMBOLID":"G*S*PP----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.T1.W.W1.","DESCRIPTION":"Medevac Pick-Up Point","HIERARCHY":"2.X.5.1.16","ALPHAHIERARCHY":"TACGRP.CSS.PNT.MPP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.5.2","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*LC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Convoys","HIERARCHY":"2.X.5.2.1","PATH":"Tactical Graphics/Combat Service Support/Lines"},{"SYMBOLID":"G*S*LCM---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"A.H.H1.W.W1.","DESCRIPTION":"Moving Convoy","HIERARCHY":"2.X.5.2.1.1","PATH":"Tactical Graphics/Combat Service Support/Lines/Convoys"},{"SYMBOLID":"G*S*LCH---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"A.H.H1.W.W1.","DESCRIPTION":"Halted Convoy","HIERARCHY":"2.X.5.2.1.2","PATH":"Tactical Graphics/Combat Service Support/Lines/Convoys"},{"SYMBOLID":"G*S*LR----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Supply Routes","HIERARCHY":"2.X.5.2.2","PATH":"Tactical Graphics/Combat Service Support/Lines"},{"SYMBOLID":"G*S*LRM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Main Supply Route","HIERARCHY":"2.X.5.2.2.1","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRA---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Alternate Supply Route","HIERARCHY":"2.X.5.2.2.2","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRO---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route One-Way Traffic","HIERARCHY":"2.X.5.2.2.3","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRT---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route Alternating Traffic","HIERARCHY":"2.X.5.2.2.4","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRW---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route Two-Way Traffic","HIERARCHY":"2.X.5.2.2.5","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*A-----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Area","HIERARCHY":"2.X.5.3","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*AD----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Detainee Holding Area","HIERARCHY":"2.X.5.3.1","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AE----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Enemy Prisoner of War Holding Area","HIERARCHY":"2.X.5.3.2","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AR----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Forward Arming and Refueling Area","HIERARCHY":"2.X.5.3.3","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AH----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Refugee Holding Area","HIERARCHY":"2.X.5.3.4","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AS----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Support Areas","HIERARCHY":"2.X.5.3.5","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*ASB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Brigade Support Area (BSA)","HIERARCHY":"2.X.5.3.5.1","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*S*ASD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Division Support Area (DSA)","HIERARCHY":"2.X.5.3.5.2","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*S*ASR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Regimental Support Area (RSA)","HIERARCHY":"2.X.5.3.5.3","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*O*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Other","HIERARCHY":"2.X.6","PATH":"Tactical Graphics"},{"SYMBOLID":"G*O*E-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Emergency","HIERARCHY":"2.X.6.1","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*ED----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ditched Aircraft","HIERARCHY":"2.X.6.1.1","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*EP----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Person in Water","HIERARCHY":"2.X.6.1.2","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*ES----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.T1.H.W.W1.N.","DESCRIPTION":"Emergency Distress Call","HIERARCHY":"2.X.6.1.4","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*EV----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Distressed Vessel","HIERARCHY":"2.X.6.1.3","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*H-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hazard","HIERARCHY":"2.X.6.2","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*HM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Mine-Like Hazard","HIERARCHY":"2.X.6.2.1","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HN----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Navigational Hazard","HIERARCHY":"2.X.6.2.2","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HI----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Iceberg Hazard","HIERARCHY":"2.X.6.2.3","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Oil Rig Hazard","HIERARCHY":"2.X.6.2.4","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*S-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Sea Subsurface Returns","HIERARCHY":"2.X.6.3","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*SB----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bottom Return/Nombo","HIERARCHY":"2.X.6.3.1","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*SBM---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Installation/Manmade","HIERARCHY":"2.X.6.3.1.1","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Nombo"},{"SYMBOLID":"G*O*SBN---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Seabed Rock/Stone Obstacle","HIERARCHY":"2.X.6.3.1.2","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Nombo"},{"SYMBOLID":"G*O*SBW---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck, Nondangerous","HIERARCHY":"2.X.6.3.1.3","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Nombo"},{"SYMBOLID":"G*O*SBWD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck, Dangerous","HIERARCHY":"2.X.6.3.1.3.1","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Nombo/Wreck"},{"SYMBOLID":"G*O*SM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Marine Life","HIERARCHY":"2.X.6.3.2","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*SS----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Anomaly","HIERARCHY":"2.X.6.3.3","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line","HIERARCHY":"2.X.6.4","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*BE----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Electronic","HIERARCHY":"2.X.6.4.1","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BA----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Acoustic","HIERARCHY":"2.X.6.4.2","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BT----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Torpedo","HIERARCHY":"2.X.6.4.3","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BO----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Electro-Optical Intercept","HIERARCHY":"2.X.6.4.4","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*F-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fix","HIERARCHY":"2.X.6.5","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*FA----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Acoustic","HIERARCHY":"2.X.6.5.1","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"G*O*FE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Electro-Magnetic","HIERARCHY":"2.X.6.5.2","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"G*O*FO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Electro-Optical","HIERARCHY":"2.X.6.5.3","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"W--------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"METOC","HIERARCHY":"3.X"},{"SYMBOLID":"WA-------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Atmospheric","HIERARCHY":"3.X.1","PATH":"METOC"},{"SYMBOLID":"WA--P----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Pressure Systems","HIERARCHY":"3.X.1.1","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-PL----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Low Pressure Center","HIERARCHY":"3.X.1.1.1","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WAS-PC----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cyclone Center","HIERARCHY":"3.X.1.1.1.1","PATH":"METOC/Atmospheric/Pressure Systems/Low Pressure Center"},{"SYMBOLID":"WAS-PLT---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause Low","HIERARCHY":"3.X.1.1.1.2","PATH":"METOC/Atmospheric/Pressure Systems/Low Pressure Center"},{"SYMBOLID":"WAS-PH----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"High Pressure Center","HIERARCHY":"3.X.1.1.2","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WAS-PA----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Anticyclone Center","HIERARCHY":"3.X.1.1.2.1","PATH":"METOC/Atmospheric/Pressure Systems/High Pressure Center"},{"SYMBOLID":"WAS-PHT---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause High","HIERARCHY":"3.X.1.1.2.2","PATH":"METOC/Atmospheric/Pressure Systems/High Pressure Center"},{"SYMBOLID":"WA-DPF-----L---","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Frontal Systems","HIERARCHY":"3.X.1.1.3","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WA-DPFC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Front","HIERARCHY":"3.X.1.1.3.1","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFCU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Cold Front","HIERARCHY":"3.X.1.1.3.1.1","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFC-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Frontogenisis","HIERARCHY":"3.X.1.1.3.1.2","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFC-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Frontolysis","HIERARCHY":"3.X.1.1.3.1.3","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFW----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Front","HIERARCHY":"3.X.1.1.3.2","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFWU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Warm Front","HIERARCHY":"3.X.1.1.3.2.1","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFW-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Frontogenisis","HIERARCHY":"3.X.1.1.3.2.2","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFW-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Frontolysis","HIERARCHY":"3.X.1.1.3.2.3","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFO----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Occluded Front","HIERARCHY":"3.X.1.1.3.3","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFOU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Occluded Front","HIERARCHY":"3.X.1.1.3.3.1","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Occluded Front"},{"SYMBOLID":"WA-DPFO-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Occluded Frontolysis","HIERARCHY":"3.X.1.1.3.3.2","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Occluded Front"},{"SYMBOLID":"WA-DPFS----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Front","HIERARCHY":"3.X.1.1.3.4","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFSU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Stationary Front","HIERARCHY":"3.X.1.1.3.4.1","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA-DPFS-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Frontogenesis","HIERARCHY":"3.X.1.1.3.4.2","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA-DPFS-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Frontolysis","HIERARCHY":"3.X.1.1.3.4.3","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA--PX---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"3.X.1.1.4","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WA-DPXT----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Trough Axis","HIERARCHY":"3.X.1.1.4.1","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXR----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ridge Axis","HIERARCHY":"3.X.1.1.4.2","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXSQ---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Severe Squall Line","HIERARCHY":"3.X.1.1.4.3","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXIL---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Instability Line","HIERARCHY":"3.X.1.1.4.4","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXSH---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Shear Line","HIERARCHY":"3.X.1.1.4.5","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXITCZ-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Inter-Tropical Convergance Zone","HIERARCHY":"3.X.1.1.4.6","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXCV---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Convergance Line","HIERARCHY":"3.X.1.1.4.7","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXITD--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Inter-Tropical Discontinuity","HIERARCHY":"3.X.1.1.4.8","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WAS-T----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Turbulence","HIERARCHY":"3.X.1.2","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-TL----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Turbulence","HIERARCHY":"3.X.1.2.1","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TM----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Turbulence","HIERARCHY":"3.X.1.2.2","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TS----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Turbulence","HIERARCHY":"3.X.1.2.3","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TE----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Extreme Turbulence","HIERARCHY":"3.X.1.2.4","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-T-MW--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mountain Waves","HIERARCHY":"3.X.1.2.5","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-I----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Icing","HIERARCHY":"3.X.1.3","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-IC----P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Clear Icing","HIERARCHY":"3.X.1.3.1","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-ICL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Clear Icing","HIERARCHY":"3.X.1.3.1.1","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-ICM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Clear Icing","HIERARCHY":"3.X.1.3.1.2","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-ICS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Clear Icing","HIERARCHY":"3.X.1.3.1.3","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-IR-----P---","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rime Icing","HIERARCHY":"3.X.1.3.2","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-IRL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rime Icing","HIERARCHY":"3.X.1.3.2.1","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IRM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Rime Icing","HIERARCHY":"3.X.1.3.2.2","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IRS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Rime Icing","HIERARCHY":"3.X.1.3.2.3","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IM-----P---","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mixed Icing","HIERARCHY":"3.X.1.3.3","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-IML---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Mixed Icing","HIERARCHY":"3.X.1.3.3.1","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WAS-IMM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Mixed Icing","HIERARCHY":"3.X.1.3.3.2","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WAS-IMS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Mixed Icing","HIERARCHY":"3.X.1.3.3.3","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WA--W----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Winds","HIERARCHY":"3.X.1.4","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-WC----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Calm Winds","HIERARCHY":"3.X.1.4.1","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WAS-WP----P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"Z.Q.","DESCRIPTION":"Wind Plot","HIERARCHY":"3.X.1.4.2","ALPHAHIERARCHY":"METOC.AMPHC.WND.PLT","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA-DWJ-----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jet Stream","HIERARCHY":"3.X.1.4.3","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA-DWS-----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stream Line","HIERARCHY":"3.X.1.4.4","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA--CC---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Cloud Coverage","HIERARCHY":"3.X.1.5","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA--CCCS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Cloud Coverage Symbols","HIERARCHY":"3.X.1.5.1","PATH":"METOC/Atmospheric/Cloud Coverage"},{"SYMBOLID":"WAS-CCCSCSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Clear Sky","HIERARCHY":"3.X.1.5.1.1","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSFCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Few Coverage","HIERARCHY":"3.X.1.5.1.2","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSSCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Scattered Coverage","HIERARCHY":"3.X.1.5.1.3","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSBCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Broken Coverage","HIERARCHY":"3.X.1.5.1.4","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSOCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Overcast Coverage","HIERARCHY":"3.X.1.5.1.5","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSOBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sky Totally or Partially Obscured","HIERARCHY":"3.X.1.5.1.6","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WA--WS---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Weather Symbols","HIERARCHY":"3.X.1.6","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-WSR--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain","HIERARCHY":"3.X.1.6.1","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSR-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Rain","HIERARCHY":"3.X.1.6.1.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Rain","HIERARCHY":"3.X.1.6.1.1.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Light Rain"},{"SYMBOLID":"WAS-WSR-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Rain","HIERARCHY":"3.X.1.6.1.2","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Rain","HIERARCHY":"3.X.1.6.1.2.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Moderate Rain"},{"SYMBOLID":"WAS-WSR-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Rain","HIERARCHY":"3.X.1.6.1.3","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Rain","HIERARCHY":"3.X.1.6.1.3.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Heavy Rain"},{"SYMBOLID":"WAS-WSRF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Freezing Rain","HIERARCHY":"3.X.1.6.2","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSRFL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Freezing Rain","HIERARCHY":"3.X.1.6.2.1","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Rain"},{"SYMBOLID":"WAS-WSRFMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Freezing Rain","HIERARCHY":"3.X.1.6.2.2","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Rain"},{"SYMBOLID":"WAS-WSRS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain Showers","HIERARCHY":"3.X.1.6.3","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSRSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain Showers","HIERARCHY":"3.X.1.6.3.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSRSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Rain Showers","HIERARCHY":"3.X.1.6.3.2","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSRST-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Torrential Rain Showers","HIERARCHY":"3.X.1.6.3.3","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSD--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Drizzle","HIERARCHY":"3.X.1.6.4","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSD-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Drizzle","HIERARCHY":"3.X.1.6.4.1","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Drizzle","HIERARCHY":"3.X.1.6.4.1.1","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Light Drizzle"},{"SYMBOLID":"WAS-WSD-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Drizzle","HIERARCHY":"3.X.1.6.4.2","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Drizzle","HIERARCHY":"3.X.1.6.4.2.1","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Moderate Drizzle"},{"SYMBOLID":"WAS-WSD-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Drizzle","HIERARCHY":"3.X.1.6.4.3","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Drizzle","HIERARCHY":"3.X.1.6.4.3.1","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Heavy Drizzle"},{"SYMBOLID":"WAS-WSDF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Freezing Drizzle","HIERARCHY":"3.X.1.6.5","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSDFL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Freezing Drizzle","HIERARCHY":"3.X.1.6.5.1","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Drizzle"},{"SYMBOLID":"WAS-WSDFMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Freezing Drizzle","HIERARCHY":"3.X.1.6.5.2","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Drizzle"},{"SYMBOLID":"WAS-WSM--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain and Snow Mixed","HIERARCHY":"3.X.1.6.6","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSM-L-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain or Drizzle and Snow","HIERARCHY":"3.X.1.6.6.1","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSM-MHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Heavy Rain or Drizzle and Snow","HIERARCHY":"3.X.1.6.6.2","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSMSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain and Snow Showers","HIERARCHY":"3.X.1.6.6.3","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSMSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Rain and Snow Showers","HIERARCHY":"3.X.1.6.6.4","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSS--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Snow","HIERARCHY":"3.X.1.6.7","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSS-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Snow","HIERARCHY":"3.X.1.6.7.1","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Snow","HIERARCHY":"3.X.1.6.7.1.1","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Light Snow"},{"SYMBOLID":"WAS-WSS-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Snow","HIERARCHY":"3.X.1.6.7.2","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Snow","HIERARCHY":"3.X.1.6.7.2.1","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Moderate Snow"},{"SYMBOLID":"WAS-WSS-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Snow","HIERARCHY":"3.X.1.6.7.3","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Snow","HIERARCHY":"3.X.1.6.7.3.1","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Heavy Snow"},{"SYMBOLID":"WAS-WSSBLMP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light/Moderate Blowing Snow","HIERARCHY":"3.X.1.6.7.4","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSSBH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Heavy Blowing Snow","HIERARCHY":"3.X.1.6.7.5","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSSG--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Grains","HIERARCHY":"3.X.1.6.8","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSSS--P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Snow Showers","HIERARCHY":"3.X.1.6.9","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSSSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Snow Showers","HIERARCHY":"3.X.1.6.9.1","PATH":"METOC/Atmospheric/Weather Symbols/Snow Showers"},{"SYMBOLID":"WAS-WSSSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Snow Showers","HIERARCHY":"3.X.1.6.9.2","PATH":"METOC/Atmospheric/Weather Symbols/Snow Showers"},{"SYMBOLID":"WAS-WSGR-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hail","HIERARCHY":"3.X.1.6.10","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSGRL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hail - Light not Associated With Thunder","HIERARCHY":"3.X.1.6.10.1","PATH":"METOC/Atmospheric/Weather Symbols/Hail"},{"SYMBOLID":"WAS-WSGRMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hail - Moderate/Heavy not Associated With Thunder","HIERARCHY":"3.X.1.6.10.2","PATH":"METOC/Atmospheric/Weather Symbols/Hail"},{"SYMBOLID":"WAS-WSIC--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Crystals","HIERARCHY":"3.X.1.6.11","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSPL-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Pellets","HIERARCHY":"3.X.1.6.12","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSPLL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Ice Pellets","HIERARCHY":"3.X.1.6.12.1","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WSPLM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Ice Pellets","HIERARCHY":"3.X.1.6.12.2","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WSPLH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Heavy Ice Pellets","HIERARCHY":"3.X.1.6.12.3","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WST--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Storms","HIERARCHY":"3.X.1.6.13","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WST-NPP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm - No Precipitation","HIERARCHY":"3.X.1.6.13.1","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTMR-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Light to Moderate With Rain/Snow - No Hail","HIERARCHY":"3.X.1.6.13.2","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTHR-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Heavy With Rain/Snow - No Hail","HIERARCHY":"3.X.1.6.13.3","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTMH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Light to Moderate - With Hail","HIERARCHY":"3.X.1.6.13.4","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTHH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Heavy - With Hail","HIERARCHY":"3.X.1.6.13.5","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-FCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Funnel Cloud (Tornado/Waterspout)","HIERARCHY":"3.X.1.6.13.6","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-SQP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Squall","HIERARCHY":"3.X.1.6.13.7","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-LGP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lightning","HIERARCHY":"3.X.1.6.13.8","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSFG-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fog","HIERARCHY":"3.X.1.6.14","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSFGPSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Shallow Patches","HIERARCHY":"3.X.1.6.14.1","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGCSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Shallow Continuous","HIERARCHY":"3.X.1.6.14.2","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGP-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Patchy","HIERARCHY":"3.X.1.6.14.3","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGSVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Sky Visible","HIERARCHY":"3.X.1.6.14.4","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGSOP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Sky Obscured","HIERARCHY":"3.X.1.6.14.5","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGFVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Freezing, Sky Visible","HIERARCHY":"3.X.1.6.14.6","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGFOP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Freezing, Sky Not Visible","HIERARCHY":"3.X.1.6.14.7","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSBR--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mist","HIERARCHY":"3.X.1.6.15","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSFU--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Smoke Point","HIERARCHY":"3.X.1.6.16","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSHZ--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Haze","HIERARCHY":"3.X.1.6.17","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS--SD--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dust or Sand","HIERARCHY":"3.X.1.6.18","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSDSLMP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light to Moderate Dust/Sand Storm","HIERARCHY":"3.X.1.6.18.1","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDSS-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Dust/Sand Storm","HIERARCHY":"3.X.1.6.18.2","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDD--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dust Devil","HIERARCHY":"3.X.1.6.18.3","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Blowing Dust or Sand","HIERARCHY":"3.X.1.6.18.4","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSTS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tropical Storm Systems","HIERARCHY":"3.X.1.6.19","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSTSD-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Depression","HIERARCHY":"3.X.1.6.19.1","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSTSS-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Storm","HIERARCHY":"3.X.1.6.19.2","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSTSH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hurricane/Typhoon","HIERARCHY":"3.X.1.6.19.3","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSVE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Eruption","HIERARCHY":"3.X.1.6.20","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSVA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Ash","HIERARCHY":"3.X.1.6.20.1","PATH":"METOC/Atmospheric/Weather Symbols/Volcanic Eruption"},{"SYMBOLID":"WAS-WST-LVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause Level","HIERARCHY":"3.X.1.6.21","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSF-LVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Freezing Level","HIERARCHY":"3.X.1.6.22","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSUKP-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Precipiation of Unknown Type and Intensity","HIERARCHY":"3.X.1.6.23","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WA--BA---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bounded Areas of Weather","HIERARCHY":"3.X.1.7","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA-DBAIF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"IFR","HIERARCHY":"3.X.1.7.1","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAMV----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"MVFR","HIERARCHY":"3.X.1.7.2","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBATB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Turbulence","HIERARCHY":"3.X.1.7.3","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAI-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Icing","HIERARCHY":"3.X.1.7.4","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBALPNC--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Precipiation Non-Convective","HIERARCHY":"3.X.1.7.5","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBALPC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Precipitation Convective","HIERARCHY":"3.X.1.7.5.1","PATH":"METOC/Atmospheric/Bounded Areas of Weather/Precipiation Non-Convective"},{"SYMBOLID":"WA-DBAFP----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Frozen Precipitation","HIERARCHY":"3.X.1.7.6","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAT-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Thunderstorm","HIERARCHY":"3.X.1.7.7","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAFG----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Weather Fog","HIERARCHY":"3.X.1.7.8","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAD-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Weather Sand","HIERARCHY":"3.X.1.7.9","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAFF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Freeform","HIERARCHY":"3.X.1.7.10","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA--IP---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Isopleths","HIERARCHY":"3.X.1.8","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA-DIPIB---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isobar Surface","HIERARCHY":"3.X.1.8.1","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPCO---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Air","HIERARCHY":"3.X.1.8.2","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPIS---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isotherm","HIERARCHY":"3.X.1.8.3","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPIT---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isotach","HIERARCHY":"3.X.1.8.4","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPID---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isodrosotherm","HIERARCHY":"3.X.1.8.5","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPTH---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isopleths Thickness","HIERARCHY":"3.X.1.8.6","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPFF---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Operator Freeform","HIERARCHY":"3.X.1.8.7","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WAS-G----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"State of the Ground","HIERARCHY":"3.X.1.9","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-GN---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Without Snow or Measureable Ice Cover","HIERARCHY":"3.X.1.9.1","PATH":"METOC/Atmospheric/State of the Ground"},{"SYMBOLID":"WAS-GND-NCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Sand","HIERARCHY":"3.X.1.9.1.1","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Moist","HIERARCHY":"3.X.1.9.1.2","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNW-SWP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Wet, Standing Water in Small or Large Pools","HIERARCHY":"3.X.1.9.1.3","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNFL--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Flooded","HIERARCHY":"3.X.1.9.1.4","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNFZ--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Frozen","HIERARCHY":"3.X.1.9.1.5","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNG-TIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Glaze (Thin Ice) on Ground","HIERARCHY":"3.X.1.9.1.6","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDN-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Dust or Sand not Covering Ground Completely","HIERARCHY":"3.X.1.9.1.7","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDTCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thin Loose Dry Dust or Sand Covering Ground Completely","HIERARCHY":"3.X.1.9.1.8","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDMCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Thick Loose Dry Dust or Sand Covering Ground Completely","HIERARCHY":"3.X.1.9.1.9","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNDEWCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Extremely Dry With Cracks","HIERARCHY":"3.X.1.9.1.10","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GS---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"With Snow or Measureable Ice Cover","HIERARCHY":"3.X.1.9.2","PATH":"METOC/Atmospheric/State of the Ground"},{"SYMBOLID":"WAS-GSI---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Predominately Ice Covered","HIERARCHY":"3.X.1.9.2.1","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering Less than One-Hald of Ground","HIERARCHY":"3.X.1.9.2.2","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Compact or Wet Snow Covering At Least One-Half Ground, but Ground not Completely Covered","HIERARCHY":"3.X.1.9.2.3","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCCEP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Even Layer of Compact or Wet Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.4","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCCUP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Uneven Layer of Compact or Wet Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.5","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Snow Covering Less than One-Half of Ground","HIERARCHY":"3.X.1.9.2.6","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Snow Covering at Least One-Half Ground, but not Completely Covered","HIERARCHY":"3.X.1.9.2.7","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLCEP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Even Layer of Loose Dry Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.8","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLCUP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Uneven Layer of Loose Dry Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.9","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSDC-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Covering Ground Completely, Deep Drifts","HIERARCHY":"3.X.1.9.2.10","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WO-------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Oceanic","HIERARCHY":"3.X.2","PATH":"METOC"},{"SYMBOLID":"WO--I----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Systems","HIERARCHY":"3.X.2.1","PATH":"METOC/Oceanic"},{"SYMBOLID":"WOS-IB----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Icebergs","HIERARCHY":"3.X.2.1.1","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IBM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Icebergs","HIERARCHY":"3.X.2.1.1.1","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Belts and Strips","HIERARCHY":"3.X.2.1.1.2","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBG---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Iceberg - General","HIERARCHY":"3.X.2.1.1.3","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBMG--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Icebergs - General","HIERARCHY":"3.X.2.1.1.4","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bergy Bit","HIERARCHY":"3.X.2.1.1.5","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBBM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Bergy Bits","HIERARCHY":"3.X.2.1.1.6","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBGL--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Growler","HIERARCHY":"3.X.2.1.1.7","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBGLM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Growlers","HIERARCHY":"3.X.2.1.1.8","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBF---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Floeberg","HIERARCHY":"3.X.2.1.1.9","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBII--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Island","HIERARCHY":"3.X.2.1.1.10","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IC---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Concentration","HIERARCHY":"3.X.2.1.2","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ICWB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bergy Water","HIERARCHY":"3.X.2.1.2.1","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ICWR--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Water With Radar Targets","HIERARCHY":"3.X.2.1.2.2","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ICIF--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Free","HIERARCHY":"3.X.2.1.2.3","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ID---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dynamic Processes","HIERARCHY":"3.X.2.1.3","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IDC---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Convergence","HIERARCHY":"3.X.2.1.3.1","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-IDD---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Divergence","HIERARCHY":"3.X.2.1.3.2","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-IDS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Shearing or Shear Zone","HIERARCHY":"3.X.2.1.3.3","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WO-DIDID---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Drift (Direction)","HIERARCHY":"3.X.2.1.3.4","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-II----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Ice","HIERARCHY":"3.X.2.1.4","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IITM--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Thickness (Observed)","HIERARCHY":"3.X.2.1.4.1","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WOS-IITE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Thickness (Estimated)","HIERARCHY":"3.X.2.1.4.2","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WOS-IIP---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Melt Puddles or Flooded Ice","HIERARCHY":"3.X.2.1.4.3","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WO--IL---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Limits","HIERARCHY":"3.X.2.1.5","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WO-DILOV---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Visual Observation","HIERARCHY":"3.X.2.1.5.1","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILUC---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Undercast","HIERARCHY":"3.X.2.1.5.2","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILOR---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Radar Observation","HIERARCHY":"3.X.2.1.5.3","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIEO--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Observed Ice Edge","HIERARCHY":"3.X.2.1.5.4","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIEE--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Estimated Ice Edge","HIERARCHY":"3.X.2.1.5.5","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIER--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ice Edge From Radar","HIERARCHY":"3.X.2.1.5.6","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO--IO---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Openings in the Ice","HIERARCHY":"3.X.2.1.6","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WO-DIOC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cracks","HIERARCHY":"3.X.2.1.6.1","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOCS---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cracks Specific-Location","HIERARCHY":"3.X.2.1.6.2","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOL----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ice Openings-Lead","HIERARCHY":"3.X.2.1.6.3","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOLF---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Frozen Lead","HIERARCHY":"3.X.2.1.6.4","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WOS-ISC---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Cover","HIERARCHY":"3.X.2.1.7","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ISS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sastrugi","HIERARCHY":"3.X.2.1.7.1","PATH":"METOC/Oceanic/Ice Systems/Snow Cover"},{"SYMBOLID":"WOS-IT---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Topographical Features","HIERARCHY":"3.X.2.1.8","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ITRH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ridges or Hummocks","HIERARCHY":"3.X.2.1.8.1","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WOS-ITR---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rafting","HIERARCHY":"3.X.2.1.8.2","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WOS-ITBB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Jammed Brash Barrier","HIERARCHY":"3.X.2.1.8.3","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WO--H----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hydrography","HIERARCHY":"3.X.2.2","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--HD---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Depth","HIERARCHY":"3.X.2.2.1","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HDS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Soundings","HIERARCHY":"3.X.2.2.1.1","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDL---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Depth Curve","HIERARCHY":"3.X.2.2.1.2","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDC---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Depth Contour","HIERARCHY":"3.X.2.2.1.3","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Depth Area","HIERARCHY":"3.X.2.2.1.4","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO--HC---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Coastal Hydrography","HIERARCHY":"3.X.2.2.2","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WO-DHCC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Coastline","HIERARCHY":"3.X.2.2.2.1","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCI-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Island","HIERARCHY":"3.X.2.2.2.2","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCB-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach","HIERARCHY":"3.X.2.2.2.3","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCW-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Water","HIERARCHY":"3.X.2.2.2.4","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCF--------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Foreshore","HIERARCHY":"3.X.2.2.2.5","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCF----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Foreshore Line","HIERARCHY":"3.X.2.2.2.5.1","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography/Foreshore"},{"SYMBOLID":"WO-DHCF-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Foreshore Area","HIERARCHY":"3.X.2.2.2.5.2","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography/Foreshore"},{"SYMBOLID":"WO-DHP---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ports and Harbors","HIERARCHY":"3.X.2.2.3","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WO--HPB--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ports","HIERARCHY":"3.X.2.2.3.1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WOS-HPB-O-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Berths (Onshore)","HIERARCHY":"3.X.2.2.3.1.1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPB-A-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Berths (Anchor)","HIERARCHY":"3.X.2.2.3.1.2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPBA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Anchorage","HIERARCHY":"3.X.2.2.3.1.3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBA---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Anchorage Line","HIERARCHY":"3.X.2.2.3.1.4","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Anchorage Area","HIERARCHY":"3.X.2.2.3.1.5","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPCP--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Call in Point","HIERARCHY":"3.X.2.2.3.1.6","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBP---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Pier","HIERARCHY":"3.X.2.2.3.1.7","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPF--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fishing","HIERARCHY":"3.X.2.2.3.2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WOS-HPFH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fishing Harbor","HIERARCHY":"3.X.2.2.3.2.1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fish Stakes/Traps/Weirs","HIERARCHY":"3.X.2.2.3.2.2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFS---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fish Stakes","HIERARCHY":"3.X.2.2.3.2.3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Wiers","HIERARCHY":"3.X.2.2.3.2.4","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WO--HPM--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Facilities","HIERARCHY":"3.X.2.2.3.3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WO-DHPMD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Drydock","HIERARCHY":"3.X.2.2.3.3.1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPML--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Landing Place","HIERARCHY":"3.X.2.2.3.3.2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Offshore Loading Facility 1","HIERARCHY":"3.X.2.2.3.3.3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Offshore Loading Facility 2","HIERARCHY":"3.X.2.2.3.3.4","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Offshore Loading Facility Area","HIERARCHY":"3.X.2.2.3.3.5","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMRA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ramp Above Water","HIERARCHY":"3.X.2.2.3.3.6","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMRB--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ramp Below Water","HIERARCHY":"3.X.2.2.3.3.7","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-R-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Landing Ring","HIERARCHY":"3.X.2.2.3.3.8","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-FC-L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ferry Crossing","HIERARCHY":"3.X.2.2.3.3.9","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-CC-L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cable Ferry Crossing","HIERARCHY":"3.X.2.2.3.3.10","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPD---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dolphin","HIERARCHY":"3.X.2.2.3.3.11","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPSP-------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Shoreline Protection","HIERARCHY":"3.X.2.2.3.4","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WO-DHPSPA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jetty Above Water","HIERARCHY":"3.X.2.2.3.4.1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO-DHPSPB--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jetty Below Water","HIERARCHY":"3.X.2.2.3.4.2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO-DHPSPS--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Seawall","HIERARCHY":"3.X.2.2.3.4.3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO--HA---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Aids to Navigation","HIERARCHY":"3.X.2.2.4","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HABA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Beacon","HIERARCHY":"3.X.2.2.4.1","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Buoy Default","HIERARCHY":"3.X.2.2.4.2","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABM--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Marker","HIERARCHY":"3.X.2.2.4.3","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WO--HABP-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Perches/Stakes","HIERARCHY":"3.X.2.2.4.4","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABP--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Perches/Stakes","HIERARCHY":"3.X.2.2.4.4.1","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation/Perches-Stakes"},{"SYMBOLID":"WO-DHABP----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Perches","HIERARCHY":"3.X.2.2.4.4.2","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation/Perches-Stakes"},{"SYMBOLID":"WOS-HAL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light","HIERARCHY":"3.X.2.2.4.5","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WO-DHALLA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Leading Line","HIERARCHY":"3.X.2.2.4.6","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HALV--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Vessel/Lightship","HIERARCHY":"3.X.2.2.4.7","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HALH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lighthouse","HIERARCHY":"3.X.2.2.4.8","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WO--HH---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dangers/Hazards","HIERARCHY":"3.X.2.2.5","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HHRS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock Submerged","HIERARCHY":"3.X.2.2.5.1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHRA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock Awashed","HIERARCHY":"3.X.2.2.5.2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHD-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Underwater Hazard","HIERARCHY":"3.X.2.2.5.3","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO--HHDF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Foul Ground","HIERARCHY":"3.X.2.2.5.4","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDF--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Foul Ground Point","HIERARCHY":"3.X.2.2.5.4.1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Foul Ground"},{"SYMBOLID":"WO-DHHDF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Foul Ground Area","HIERARCHY":"3.X.2.2.5.4.2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Foul Ground"},{"SYMBOLID":"WO-DHHDK-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Kelp/Seaweed","HIERARCHY":"3.X.2.2.5.5","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDK--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Kelp/Seaweed Point","HIERARCHY":"3.X.2.2.5.5.1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDK----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Kelp/Seaweed Area","HIERARCHY":"3.X.2.2.5.5.2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Kelp-Seaweed"},{"SYMBOLID":"WOS-HHDMD------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mine-Naval","HIERARCHY":"3.X.2.2.5.6","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDMDBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mine-Naval (Doubtful)","HIERARCHY":"3.X.2.2.5.6.1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Mine-Naval"},{"SYMBOLID":"WOS-HHDMDFP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mine-Naval (Definite)","HIERARCHY":"3.X.2.2.5.6.2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Mine-Naval"},{"SYMBOLID":"WOS-HHDS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snags/Stumps","HIERARCHY":"3.X.2.2.5.7","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDW--P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Wreck","HIERARCHY":"3.X.2.2.5.8","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDWA-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck (Uncovers)","HIERARCHY":"3.X.2.2.5.8.1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Wreck"},{"SYMBOLID":"WOS-HHDWB-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck (Submerged)","HIERARCHY":"3.X.2.2.5.8.2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Wreck"},{"SYMBOLID":"WO-DHHDB---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Breaker","HIERARCHY":"3.X.2.2.5.9","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDR---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Reef","HIERARCHY":"3.X.2.2.5.10","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Eddies/Overfalls/Tide Rips","HIERARCHY":"3.X.2.2.5.11","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Discolored Water","HIERARCHY":"3.X.2.2.5.12","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO--BF---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Features","HIERARCHY":"3.X.2.2.6","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-BFC--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Characteristics","HIERARCHY":"3.X.2.2.6.1","PATH":"METOC/Oceanic/Hydrography/Bottom Features"},{"SYMBOLID":"WOS-BFC-S-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sand","HIERARCHY":"3.X.2.2.6.1.1","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-M-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mud","HIERARCHY":"3.X.2.2.6.1.2","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-CLP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Clay","HIERARCHY":"3.X.2.2.6.1.3","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-SIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Silt","HIERARCHY":"3.X.2.2.6.1.4","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-STP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Stones","HIERARCHY":"3.X.2.2.6.1.5","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-G-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Gravel","HIERARCHY":"3.X.2.2.6.1.6","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-P-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pebbles","HIERARCHY":"3.X.2.2.6.1.7","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-CBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cobbles","HIERARCHY":"3.X.2.2.6.1.8","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-R-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock","HIERARCHY":"3.X.2.2.6.1.9","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-COP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Coral","HIERARCHY":"3.X.2.2.6.1.10","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-SHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Shell","HIERARCHY":"3.X.2.2.6.1.11","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFQ--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Qualifying Terms","HIERARCHY":"3.X.2.2.6.2","PATH":"METOC/Oceanic/Hydrography/Bottom Features"},{"SYMBOLID":"WOS-BFQ-F-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fine","HIERARCHY":"3.X.2.2.6.2.1","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WOS-BFQ-M-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Medium","HIERARCHY":"3.X.2.2.6.2.2","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WOS-BFQ-C-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Coarse","HIERARCHY":"3.X.2.2.6.2.3","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WO--TCC--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tide and Current","HIERARCHY":"3.X.2.2.7","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-TCCW--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Water Turbulence","HIERARCHY":"3.X.2.2.7.1","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO-DTCCCFE-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ebb Tide","HIERARCHY":"3.X.2.2.7.2","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO-DTCCCFF-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Flood Tide","HIERARCHY":"3.X.2.2.7.3","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WOS-TCCTD-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tide Data Point","HIERARCHY":"3.X.2.2.7.4","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WOS-TCCTG-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tide Gauge","HIERARCHY":"3.X.2.2.7.5","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO--O----------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Oceanography","HIERARCHY":"3.X.2.3","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--OB---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bioluminescence","HIERARCHY":"3.X.2.3.1","PATH":"METOC/Oceanic/Oceanography"},{"SYMBOLID":"WO-DOBVA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 1-2","HIERARCHY":"3.X.2.3.1.1","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 2-3","HIERARCHY":"3.X.2.3.1.2","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVC----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 3-4","HIERARCHY":"3.X.2.3.1.3","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 4-5","HIERARCHY":"3.X.2.3.1.4","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVE----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 5-6","HIERARCHY":"3.X.2.3.1.5","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 6-7","HIERARCHY":"3.X.2.3.1.6","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVG----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 7-8","HIERARCHY":"3.X.2.3.1.7","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVH----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 8-9","HIERARCHY":"3.X.2.3.1.8","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVI----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 9-10","HIERARCHY":"3.X.2.3.1.9","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO--BS---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Beach Slope","HIERARCHY":"3.X.2.3.2","PATH":"METOC/Oceanic/Oceanography"},{"SYMBOLID":"WO-DBSF-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Flat","HIERARCHY":"3.X.2.3.2.1","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBSG-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Gentle","HIERARCHY":"3.X.2.3.2.2","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBSM-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Moderate","HIERARCHY":"3.X.2.3.2.3","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBST-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Steep","HIERARCHY":"3.X.2.3.2.4","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO--G----------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Geophysics/Acoustics","HIERARCHY":"3.X.2.4","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--GM---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mine Warefare Bottom Descriptors","HIERARCHY":"3.X.2.4.1","PATH":"METOC/Oceanic/Geophysics-Acoustics"},{"SYMBOLID":"WO--GMS--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw-Bottom Sediments","HIERARCHY":"3.X.2.4.1.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMSR----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Solid Rock","HIERARCHY":"3.X.2.4.1.1.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSC----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clay","HIERARCHY":"3.X.2.4.1.1.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSVS--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Course Sand","HIERARCHY":"3.X.2.4.1.1.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Coarse Sand","HIERARCHY":"3.X.2.4.1.1.4","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSM---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Medium Sand","HIERARCHY":"3.X.2.4.1.1.5","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Fine Sand","HIERARCHY":"3.X.2.4.1.1.6","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSVF--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Fine Sand","HIERARCHY":"3.X.2.4.1.1.7","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIVF--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Fine Silt","HIERARCHY":"3.X.2.4.1.1.8","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Fine Silt","HIERARCHY":"3.X.2.4.1.1.9","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIM---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Medium Silt","HIERARCHY":"3.X.2.4.1.1.10","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Coarse Silt","HIERARCHY":"3.X.2.4.1.1.11","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Boulders","HIERARCHY":"3.X.2.4.1.1.12","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-CO--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Oyster Shells","HIERARCHY":"3.X.2.4.1.1.13","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-PH--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Pebbles Shells","HIERARCHY":"3.X.2.4.1.1.14","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-SH--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Sand and Shells","HIERARCHY":"3.X.2.4.1.1.15","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGML-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Sediments Land 1","HIERARCHY":"3.X.2.4.1.1.16","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMN-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Sediments Land 2","HIERARCHY":"3.X.2.4.1.1.17","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMR--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Roughness","HIERARCHY":"3.X.2.4.1.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMRS----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Smooth","HIERARCHY":"3.X.2.4.1.2.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMRM----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Moderate","HIERARCHY":"3.X.2.4.1.2.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMRR----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Rough","HIERARCHY":"3.X.2.4.1.2.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMC--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Clutter Low","HIERARCHY":"3.X.2.4.1.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMCL----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter Low","HIERARCHY":"3.X.2.4.1.3.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMCM----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter Medium","HIERARCHY":"3.X.2.4.1.3.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMCH----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter High","HIERARCHY":"3.X.2.4.1.3.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMIB-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Impact Burial","HIERARCHY":"3.X.2.4.1.4","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMIBA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 0","HIERARCHY":"3.X.2.4.1.4.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 10","HIERARCHY":"3.X.2.4.1.4.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 20","HIERARCHY":"3.X.2.4.1.4.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBD---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 75","HIERARCHY":"3.X.2.4.1.4.4","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBE---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 100","HIERARCHY":"3.X.2.4.1.4.5","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMBC-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw Bottom Category","HIERARCHY":"3.X.2.4.1.5","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMBCA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category A","HIERARCHY":"3.X.2.4.1.5.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBCB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category B","HIERARCHY":"3.X.2.4.1.5.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBCC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category C","HIERARCHY":"3.X.2.4.1.5.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBT-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw Bottom Type","HIERARCHY":"3.X.2.4.1.6","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMBTA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A1","HIERARCHY":"3.X.2.4.1.6.1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A2","HIERARCHY":"3.X.2.4.1.6.2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A3","HIERARCHY":"3.X.2.4.1.6.3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTD---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B1","HIERARCHY":"3.X.2.4.1.6.4","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTE---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B2","HIERARCHY":"3.X.2.4.1.6.5","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B3","HIERARCHY":"3.X.2.4.1.6.6","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTG---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C1","HIERARCHY":"3.X.2.4.1.6.7","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTH---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C2","HIERARCHY":"3.X.2.4.1.6.8","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTI---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C3","HIERARCHY":"3.X.2.4.1.6.9","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO--L----------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Limits","HIERARCHY":"3.X.2.5","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO-DL-ML---L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Maritime Limit","HIERARCHY":"3.X.2.5.1","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-MA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Maritime Area","HIERARCHY":"3.X.2.5.2","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-RA---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Restricted Area","HIERARCHY":"3.X.2.5.3","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-SA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Swept Area","HIERARCHY":"3.X.2.5.4","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-TA----A--","GEOMETRY":"area","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Training Area","HIERARCHY":"3.X.2.5.5","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-O-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Operator Defined","HIERARCHY":"3.X.2.5.6","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO--M----------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Man-Made Structures","HIERARCHY":"3.X.2.6","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO-DMCA----L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cable","HIERARCHY":"3.X.2.6.1","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMCC-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Submerged Crib","HIERARCHY":"3.X.2.6.2","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMCD----L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Canal","HIERARCHY":"3.X.2.6.3","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MF----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ford","HIERARCHY":"3.X.2.6.4","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-ML----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lock","HIERARCHY":"3.X.2.6.5","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MOA---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Oil/Gas Rig","HIERARCHY":"3.X.2.6.6","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMOA-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Oil Rig Field","HIERARCHY":"3.X.2.6.7","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMPA----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Pipe","HIERARCHY":"3.X.2.6.8","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MPA---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pile/Piling/Post","HIERARCHY":"3.X.2.6.9","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WS-------------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Space","HIERARCHY":"3.X.3","PATH":"METOC"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.UnitFontMappingsB={"UNITFONTMAPPINGS":{"SYMBOL":[{"SYMBOLID":"S***------*****","DESCRIPTION":"Warfighting Symbology"},{"SYMBOLID":"S*P*------*****","DESCRIPTION":"Space Track"},{"SYMBOLID":"S*P*S-----*****","DESCRIPTION":"Satellite","MAPPING1U":"1000","MAPPING1F":"1000","MAPPING1N":"1000","MAPPING1H":"1000"},{"SYMBOLID":"S*P*V-----*****","DESCRIPTION":"Crewed Space Vehicle","MAPPING1U":"1001","MAPPING1F":"1001","MAPPING1N":"1001","MAPPING1H":"1001"},{"SYMBOLID":"S*P*T-----*****","DESCRIPTION":"Space Station","MAPPING1U":"1002","MAPPING1F":"1002","MAPPING1N":"1002","MAPPING1H":"1002","MAPPING2":"1003","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*P*L-----*****","DESCRIPTION":"Space Launch Vehicle","MAPPING1U":"1004","MAPPING1F":"1004","MAPPING1N":"1004","MAPPING1H":"1004"},{"SYMBOLID":"S*A*------*****","DESCRIPTION":"Air Track"},{"SYMBOLID":"S*A*M-----*****","DESCRIPTION":"Military","MAPPING1U":"1005","MAPPING1F":"1005","MAPPING1N":"1005","MAPPING1H":"1005"},{"SYMBOLID":"S*A*MF----*****","DESCRIPTION":"Fixed Wing","MAPPING1U":"1006","MAPPING1F":"1006","MAPPING1N":"1006","MAPPING1H":"1006"},{"SYMBOLID":"S*A*MFB---*****","DESCRIPTION":"Fixed Wing Bomber","MAPPING1U":"1007","MAPPING1F":"1007","MAPPING1N":"1007","MAPPING1H":"1007"},{"SYMBOLID":"S*A*MFF---*****","DESCRIPTION":"Fixed Wing Fighter","MAPPING1U":"1008","MAPPING1F":"1008","MAPPING1N":"1008","MAPPING1H":"1008"},{"SYMBOLID":"S*A*MFFI--*****","DESCRIPTION":"Fixed Wing Interceptor","MAPPING1U":"1009","MAPPING1F":"1009","MAPPING1N":"1009","MAPPING1H":"1009"},{"SYMBOLID":"S*A*MFT---*****","DESCRIPTION":"Fixed Wing Trainer","MAPPING1U":"1010","MAPPING1F":"1010","MAPPING1N":"1010","MAPPING1H":"1010"},{"SYMBOLID":"S*A*MFA---*****","DESCRIPTION":"Attack/Strike","MAPPING1U":"1011","MAPPING1F":"1011","MAPPING1N":"1011","MAPPING1H":"1011"},{"SYMBOLID":"S*A*MFL---*****","DESCRIPTION":"Fixed Wing VSTOL","MAPPING1U":"1012","MAPPING1F":"1012","MAPPING1N":"1012","MAPPING1H":"1012"},{"SYMBOLID":"S*A*MFK---*****","DESCRIPTION":"Fixed Wing Tanker","MAPPING1U":"1013","MAPPING1F":"1013","MAPPING1N":"1013","MAPPING1H":"1013"},{"SYMBOLID":"S*A*MFKB--*****","DESCRIPTION":"Fixed Wing Tanker Boom-Only","MAPPING1U":"1014","MAPPING1F":"1014","MAPPING1N":"1014","MAPPING1H":"1014"},{"SYMBOLID":"S*A*MFKD--*****","DESCRIPTION":"Fixed Wing Tanker Drouge-Only","MAPPING1U":"1015","MAPPING1F":"1015","MAPPING1N":"1015","MAPPING1H":"1015"},{"SYMBOLID":"S*A*MFC---*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Transport)","MAPPING1U":"1016","MAPPING1F":"1016","MAPPING1N":"1016","MAPPING1H":"1016"},{"SYMBOLID":"S*A*MFCL--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Light)","MAPPING1U":"1017","MAPPING1F":"1017","MAPPING1N":"1017","MAPPING1H":"1017"},{"SYMBOLID":"S*A*MFCM--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Medium)","MAPPING1U":"1018","MAPPING1F":"1018","MAPPING1N":"1018","MAPPING1H":"1018"},{"SYMBOLID":"S*A*MFCH--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Heavy)","MAPPING1U":"1019","MAPPING1F":"1019","MAPPING1N":"1019","MAPPING1H":"1019"},{"SYMBOLID":"S*A*MFJ---*****","DESCRIPTION":"Fixed Wing ECM/Jammer","MAPPING1U":"1020","MAPPING1F":"1020","MAPPING1N":"1020","MAPPING1H":"1020"},{"SYMBOLID":"S*A*MFO---*****","DESCRIPTION":"Fixed Wing MEDEVAC","MAPPING1U":"1021","MAPPING1F":"1021","MAPPING1N":"1021","MAPPING1H":"1021"},{"SYMBOLID":"S*A*MFR---*****","DESCRIPTION":"Fixed Wing Reconnaissance","MAPPING1U":"1022","MAPPING1F":"1022","MAPPING1N":"1022","MAPPING1H":"1022"},{"SYMBOLID":"S*A*MFRW--*****","DESCRIPTION":"Fixed Wing Airborne Early Warning (AEW)","MAPPING1U":"1023","MAPPING1F":"1023","MAPPING1N":"1023","MAPPING1H":"1023"},{"SYMBOLID":"S*A*MFRZ--*****","DESCRIPTION":"Fixed Wing Electronic Surveillance Measures","MAPPING1U":"1024","MAPPING1F":"1024","MAPPING1N":"1024","MAPPING1H":"1024"},{"SYMBOLID":"S*A*MFRX--*****","DESCRIPTION":"Fixed Wing Photographic","MAPPING1U":"1025","MAPPING1F":"1025","MAPPING1N":"1025","MAPPING1H":"1025"},{"SYMBOLID":"S*A*MFP---*****","DESCRIPTION":"Fixed Wing Patrol","MAPPING1U":"1026","MAPPING1F":"1026","MAPPING1N":"1026","MAPPING1H":"1026"},{"SYMBOLID":"S*A*MFPN--*****","DESCRIPTION":"Patrol Antisurface Warfare (ASUW)","MAPPING1U":"1027","MAPPING1F":"1027","MAPPING1N":"1027","MAPPING1H":"1027"},{"SYMBOLID":"S*A*MFPM--*****","DESCRIPTION":"Fixed Wing Mine Countermeasures","MAPPING1U":"1028","MAPPING1F":"1028","MAPPING1N":"1028","MAPPING1H":"1028"},{"SYMBOLID":"S*A*MFU---*****","DESCRIPTION":"Fixed Wing Utility","MAPPING1U":"1029","MAPPING1F":"1029","MAPPING1N":"1029","MAPPING1H":"1029"},{"SYMBOLID":"S*A*MFUL--*****","DESCRIPTION":"Fixed Wing Utility (Light)","MAPPING1U":"1030","MAPPING1F":"1030","MAPPING1N":"1030","MAPPING1H":"1030"},{"SYMBOLID":"S*A*MFUM--*****","DESCRIPTION":"Fixed Wing Utility (Medium)","MAPPING1U":"1031","MAPPING1F":"1031","MAPPING1N":"1031","MAPPING1H":"1031"},{"SYMBOLID":"S*A*MFUH--*****","DESCRIPTION":"Fixed Wing Utility (Heavy)","MAPPING1U":"1032","MAPPING1F":"1032","MAPPING1N":"1032","MAPPING1H":"1032"},{"SYMBOLID":"S*A*MFY---*****","DESCRIPTION":"Fixed Wing Communications (C3I)","MAPPING1U":"1033","MAPPING1F":"1033","MAPPING1N":"1033","MAPPING1H":"1033"},{"SYMBOLID":"S*A*MFH---*****","DESCRIPTION":"Fixed Wing Combat Search and Rescue (CSAR)","MAPPING1U":"1034","MAPPING1F":"1034","MAPPING1N":"1034","MAPPING1H":"1034"},{"SYMBOLID":"S*A*MFD---*****","DESCRIPTION":"Fixed Wing Airborne Command Post (C2)","MAPPING1U":"1035","MAPPING1F":"1035","MAPPING1N":"1035","MAPPING1H":"1035"},{"SYMBOLID":"S*A*MFQ---*****","DESCRIPTION":"Drone (RPV/UAV) Fixed Wing","MAPPING1U":"1036","MAPPING1F":"1036","MAPPING1N":"1036","MAPPING1H":"1036"},{"SYMBOLID":"S*A*MFQA--*****","DESCRIPTION":"Drone Attack","MAPPING1U":"1037","MAPPING1F":"1037","MAPPING1N":"1037","MAPPING1H":"1037"},{"SYMBOLID":"S*A*MFQB--*****","DESCRIPTION":"Drone Bomber","MAPPING1U":"1038","MAPPING1F":"1038","MAPPING1N":"1038","MAPPING1H":"1038"},{"SYMBOLID":"S*A*MFQC--*****","DESCRIPTION":"Drone Cargo","MAPPING1U":"1039","MAPPING1F":"1039","MAPPING1N":"1039","MAPPING1H":"1039"},{"SYMBOLID":"S*A*MFQD--*****","DESCRIPTION":"Drone (RPV/UAV) Airborne Command Post","MAPPING1U":"1040","MAPPING1F":"1040","MAPPING1N":"1040","MAPPING1H":"1040"},{"SYMBOLID":"S*A*MFQF--*****","DESCRIPTION":"Drone Fighter","MAPPING1U":"1041","MAPPING1F":"1041","MAPPING1N":"1041","MAPPING1H":"1041"},{"SYMBOLID":"S*A*MFQH--*****","DESCRIPTION":"Search & Rescue (CSAR)","MAPPING1U":"1042","MAPPING1F":"1042","MAPPING1N":"1042","MAPPING1H":"1042"},{"SYMBOLID":"S*A*MFQJ--*****","DESCRIPTION":"Drone Electronic Countermeasures (Jammer)","MAPPING1U":"1043","MAPPING1F":"1043","MAPPING1N":"1043","MAPPING1H":"1043"},{"SYMBOLID":"S*A*MFQK--*****","DESCRIPTION":"Drone Tanker","MAPPING1U":"1044","MAPPING1F":"1044","MAPPING1N":"1044","MAPPING1H":"1044"},{"SYMBOLID":"S*A*MFQL--*****","DESCRIPTION":"Drone Vstol","MAPPING1U":"1045","MAPPING1F":"1045","MAPPING1N":"1045","MAPPING1H":"1045"},{"SYMBOLID":"S*A*MFQM--*****","DESCRIPTION":"Drone Special Operations Forces (SOF)","MAPPING1U":"1046","MAPPING1F":"1046","MAPPING1N":"1046","MAPPING1H":"1046"},{"SYMBOLID":"S*A*MFQI--*****","DESCRIPTION":"Drone Mine Countermeasures","MAPPING1U":"1047","MAPPING1F":"1047","MAPPING1N":"1047","MAPPING1H":"1047"},{"SYMBOLID":"S*A*MFQN--*****","DESCRIPTION":"Drone Anti-Surface Warfare (ASUW)","MAPPING1U":"1048","MAPPING1F":"1048","MAPPING1N":"1048","MAPPING1H":"1048"},{"SYMBOLID":"S*A*MFQP--*****","DESCRIPTION":"Drone Patrol","MAPPING1U":"1049","MAPPING1F":"1049","MAPPING1N":"1049","MAPPING1H":"1049"},{"SYMBOLID":"S*A*MFQR--*****","DESCRIPTION":"Drone Reconnaissance","MAPPING1U":"1050","MAPPING1F":"1050","MAPPING1N":"1050","MAPPING1H":"1050"},{"SYMBOLID":"S*A*MFQRW-*****","DESCRIPTION":"Drone Airborne Early Warning (AEW)","MAPPING1U":"1051","MAPPING1F":"1051","MAPPING1N":"1051","MAPPING1H":"1051"},{"SYMBOLID":"S*A*MFQRZ-*****","DESCRIPTION":"Drone Electronic Surveillance Measures","MAPPING1U":"1052","MAPPING1F":"1052","MAPPING1N":"1052","MAPPING1H":"1052"},{"SYMBOLID":"S*A*MFQRX-*****","DESCRIPTION":"Drone Photographic","MAPPING1U":"1053","MAPPING1F":"1053","MAPPING1N":"1053","MAPPING1H":"1053"},{"SYMBOLID":"S*A*MFQS--*****","DESCRIPTION":"Drone Anti-Submarine Warfare (ASW)","MAPPING1U":"1054","MAPPING1F":"1054","MAPPING1N":"1054","MAPPING1H":"1054"},{"SYMBOLID":"S*A*MFQT--*****","DESCRIPTION":"Drone Trainer","MAPPING1U":"1055","MAPPING1F":"1055","MAPPING1N":"1055","MAPPING1H":"1055"},{"SYMBOLID":"S*A*MFQU--*****","DESCRIPTION":"Drone Utility Fixed Wing","MAPPING1U":"1056","MAPPING1F":"1056","MAPPING1N":"1056","MAPPING1H":"1056"},{"SYMBOLID":"S*A*MFQY--*****","DESCRIPTION":"Drone Communications (C3I)","MAPPING1U":"1057","MAPPING1F":"1057","MAPPING1N":"1057","MAPPING1H":"1057"},{"SYMBOLID":"S*A*MFQO--*****","DESCRIPTION":"Drone Medevac","MAPPING1U":"1058","MAPPING1F":"1058","MAPPING1N":"1058","MAPPING1H":"1058"},{"SYMBOLID":"S*A*MFS---*****","DESCRIPTION":"Antisubmarine Warfare (ASW) Carrier Based","MAPPING1U":"1059","MAPPING1F":"1059","MAPPING1N":"1059","MAPPING1H":"1059"},{"SYMBOLID":"S*A*MFM---*****","DESCRIPTION":"Fixed Wing Special Operations Forces (SOF)","MAPPING1U":"1060","MAPPING1F":"1060","MAPPING1N":"1060","MAPPING1H":"1060"},{"SYMBOLID":"S*A*MH----*****","DESCRIPTION":"Rotary Wing","MAPPING1U":"1061","MAPPING1F":"1061","MAPPING1N":"1061","MAPPING1H":"1061"},{"SYMBOLID":"S*A*MHA---*****","DESCRIPTION":"Rotary Wing Attack","MAPPING1U":"1062","MAPPING1F":"1062","MAPPING1N":"1062","MAPPING1H":"1062"},{"SYMBOLID":"S*A*MHS---*****","DESCRIPTION":"Antisubmarine Warfare/MPA ROTARY WING","MAPPING1U":"1063","MAPPING1F":"1063","MAPPING1N":"1063","MAPPING1H":"1063"},{"SYMBOLID":"S*A*MHU---*****","DESCRIPTION":"Rotary Wing Utility","MAPPING1U":"1064","MAPPING1F":"1064","MAPPING1N":"1064","MAPPING1H":"1064"},{"SYMBOLID":"S*A*MHUL--*****","DESCRIPTION":"Rotary Wing Utility (Light)","MAPPING1U":"1065","MAPPING1F":"1065","MAPPING1N":"1065","MAPPING1H":"1065"},{"SYMBOLID":"S*A*MHUM--*****","DESCRIPTION":"Rotary Wing Utility (Medium)","MAPPING1U":"1066","MAPPING1F":"1066","MAPPING1N":"1066","MAPPING1H":"1066"},{"SYMBOLID":"S*A*MHUH--*****","DESCRIPTION":"Rotary Wing Utility (Heavy)","MAPPING1U":"1067","MAPPING1F":"1067","MAPPING1N":"1067","MAPPING1H":"1067"},{"SYMBOLID":"S*A*MHI---*****","DESCRIPTION":"Rotary Wing Mine Countermeasures","MAPPING1U":"1068","MAPPING1F":"1068","MAPPING1N":"1068","MAPPING1H":"1068"},{"SYMBOLID":"S*A*MHH---*****","DESCRIPTION":"Rotary Wing Combat Search and Rescue(Military)","MAPPING1U":"1069","MAPPING1F":"1069","MAPPING1N":"1069","MAPPING1H":"1069"},{"SYMBOLID":"S*A*MHR---*****","DESCRIPTION":"Rotary Wing Reconnaissance","MAPPING1U":"1070","MAPPING1F":"1070","MAPPING1N":"1070","MAPPING1H":"1070"},{"SYMBOLID":"S*A*MHQ---*****","DESCRIPTION":"Drone (RPV/UAV) Rotary Wing","MAPPING1U":"1071","MAPPING1F":"1071","MAPPING1N":"1071","MAPPING1H":"1071"},{"SYMBOLID":"S*A*MHC---*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Transport)","MAPPING1U":"1072","MAPPING1F":"1072","MAPPING1N":"1072","MAPPING1H":"1072"},{"SYMBOLID":"S*A*MHCL--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Light)","MAPPING1U":"1073","MAPPING1F":"1073","MAPPING1N":"1073","MAPPING1H":"1073"},{"SYMBOLID":"S*A*MHCM--*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Medium)","MAPPING1U":"1074","MAPPING1F":"1074","MAPPING1N":"1074","MAPPING1H":"1074"},{"SYMBOLID":"S*A*MHCH--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Heavy)","MAPPING1U":"1075","MAPPING1F":"1075","MAPPING1N":"1075","MAPPING1H":"1075"},{"SYMBOLID":"S*A*MHT---*****","DESCRIPTION":"Rotary Wing Trainer","MAPPING1U":"1076","MAPPING1F":"1076","MAPPING1N":"1076","MAPPING1H":"1076"},{"SYMBOLID":"S*A*MHO---*****","DESCRIPTION":"Rotary Wing MEDEVAC","MAPPING1U":"1077","MAPPING1F":"1077","MAPPING1N":"1077","MAPPING1H":"1077"},{"SYMBOLID":"S*A*MHM---*****","DESCRIPTION":"Rotary Wing Special Operations Forces","MAPPING1U":"1078","MAPPING1F":"1078","MAPPING1N":"1078","MAPPING1H":"1078"},{"SYMBOLID":"S*A*MHD---*****","DESCRIPTION":"Rotary Wing Airborne Command Post","MAPPING1U":"1079","MAPPING1F":"1079","MAPPING1N":"1079","MAPPING1H":"1079"},{"SYMBOLID":"S*A*MHK---*****","DESCRIPTION":"Rotary Wing Tanker","MAPPING1U":"1080","MAPPING1F":"1080","MAPPING1N":"1080","MAPPING1H":"1080"},{"SYMBOLID":"S*A*MHJ---*****","DESCRIPTION":"Rotary Wing ECM/Jammer(TANKER)","MAPPING1U":"1081","MAPPING1F":"1081","MAPPING1N":"1081","MAPPING1H":"1081"},{"SYMBOLID":"S*A*ML----*****","DESCRIPTION":"Military Aircraft Lighter Than Air","MAPPING1U":"1082","MAPPING1F":"1082","MAPPING1N":"1082","MAPPING1H":"1082"},{"SYMBOLID":"S*A*W-----*****","DESCRIPTION":"Air Track Weapon","MAPPING1U":"1083","MAPPING1F":"1083","MAPPING1N":"1083","MAPPING1H":"1083","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WM----*****","DESCRIPTION":"Missile In Flight","MAPPING1U":"1083","MAPPING1F":"1083","MAPPING1N":"1083","MAPPING1H":"1083","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMS---*****","DESCRIPTION":"Surface Launched Missile","MAPPING1U":"1085","MAPPING1F":"1085","MAPPING1N":"1085","MAPPING1H":"1085","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSS--*****","DESCRIPTION":"Surface to Surface Missile (SSM)","MAPPING1U":"1086","MAPPING1F":"1086","MAPPING1N":"1086","MAPPING1H":"1086","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSA--*****","DESCRIPTION":"Surface To Air Missile (SAM)","MAPPING1U":"1087","MAPPING1F":"1087","MAPPING1N":"1087","MAPPING1H":"1087","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSU--*****","DESCRIPTION":"Surface to Subsurface Missile","MAPPING1U":"1088","MAPPING1F":"1088","MAPPING1N":"1088","MAPPING1H":"1088","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSB--*****","DESCRIPTION":"Anti-Ballistic Missile (ABM)","MAPPING1U":"1089","MAPPING1F":"1089","MAPPING1N":"1089","MAPPING1H":"1089","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMA---*****","DESCRIPTION":"Air Launched Missile","MAPPING1U":"1090","MAPPING1F":"1090","MAPPING1N":"1090","MAPPING1H":"1090","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAS--*****","DESCRIPTION":"Air To Surface Missile (ASM)","MAPPING1U":"1091","MAPPING1F":"1091","MAPPING1N":"1091","MAPPING1H":"1091","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAA--*****","DESCRIPTION":"Air To Air Missile (AAM)","MAPPING1U":"1093","MAPPING1F":"1093","MAPPING1N":"1093","MAPPING1H":"1093","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAP--*****","DESCRIPTION":"Air to Space Missile","MAPPING1U":"1094","MAPPING1F":"1094","MAPPING1N":"1094","MAPPING1H":"1094","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMU---*****","DESCRIPTION":"Subsurface To Surface Missile (S/SSM)","MAPPING1U":"1095","MAPPING1F":"1095","MAPPING1N":"1095","MAPPING1H":"1095","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMCM--*****","DESCRIPTION":"Cruise Missile","MAPPING1U":"1096","MAPPING1F":"1096","MAPPING1N":"1096","MAPPING1H":"1096","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMB---*****","DESCRIPTION":"Ballistic Missile","MAPPING1U":"1097","MAPPING1F":"1097","MAPPING1N":"1097","MAPPING1H":"1097","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WD----*****","DESCRIPTION":"Decoy","MAPPING1U":"1099","MAPPING1F":"1099","MAPPING1N":"1099","MAPPING1H":"1099"},{"SYMBOLID":"S*A*WB----*****","DESCRIPTION":"Bomb","MAPPING1U":"1098","MAPPING1F":"1098","MAPPING1N":"1098","MAPPING1H":"1098"},{"SYMBOLID":"S*A*C-----*****","DESCRIPTION":"Civil Aircraft","MAPPING1U":"1100","MAPPING1F":"1100","MAPPING1N":"1100","MAPPING1H":"1100"},{"SYMBOLID":"S*A*CF----*****","DESCRIPTION":"Civil Fixed Wing","MAPPING1U":"1101","MAPPING1F":"1101","MAPPING1N":"1101","MAPPING1H":"1101","MAPPING2":"402","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*A*CH----*****","DESCRIPTION":"Civil Rotary Wing","MAPPING1U":"1102","MAPPING1F":"1102","MAPPING1N":"1102","MAPPING1H":"1102","MAPPING2":"403","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*A*CL----*****","DESCRIPTION":"Civil Aircraft Lighter Than Air","MAPPING1U":"1103","MAPPING1F":"1103","MAPPING1N":"1103","MAPPING1H":"1103","MAPPING2":"404","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*------*****","DESCRIPTION":"Ground Track"},{"SYMBOLID":"S*G*U-----*****","DESCRIPTION":"Unit"},{"SYMBOLID":"S*G*UC----*****","DESCRIPTION":"Combat","MAPPING1U":"1104","MAPPING1F":"1104","MAPPING1N":"1104","MAPPING1H":"1104"},{"SYMBOLID":"S*G*UCD---*****","DESCRIPTION":"Air Defense","MAPPING1U":"1105","MAPPING1F":"1106","MAPPING1N":"1107","MAPPING1H":"1108"},{"SYMBOLID":"S*G*UCDS--*****","DESCRIPTION":"Short Range","MAPPING1U":"1109","MAPPING1F":"1110","MAPPING1N":"1111","MAPPING1H":"1112"},{"SYMBOLID":"S*G*UCDSC-*****","DESCRIPTION":"Chaparral","MAPPING1U":"1113","MAPPING1F":"1114","MAPPING1N":"1115","MAPPING1H":"1116"},{"SYMBOLID":"S*G*UCDSS-*****","DESCRIPTION":"Stinger","MAPPING1U":"1117","MAPPING1F":"1118","MAPPING1N":"1119","MAPPING1H":"1120"},{"SYMBOLID":"S*G*UCDSV-*****","DESCRIPTION":"Vulcan","MAPPING1U":"1121","MAPPING1F":"1122","MAPPING1N":"1123","MAPPING1H":"1124"},{"SYMBOLID":"S*G*UCDM--*****","DESCRIPTION":"Air Defense Missile","MAPPING1U":"1125","MAPPING1F":"1126","MAPPING1N":"1127","MAPPING1H":"1128"},{"SYMBOLID":"S*G*UCDML-*****","DESCRIPTION":"Air Defense Missile Light","MAPPING1U":"1129","MAPPING1F":"1130","MAPPING1N":"1131","MAPPING1H":"1132"},{"SYMBOLID":"S*G*UCDMLA*****","DESCRIPTION":"Air Defense Missile Motorized (Avenger)","MAPPING1U":"1133","MAPPING1F":"1134","MAPPING1N":"1135","MAPPING1H":"1136"},{"SYMBOLID":"S*G*UCDMM-*****","DESCRIPTION":"Air Defense Missile Medium","MAPPING1U":"1137","MAPPING1F":"1138","MAPPING1N":"1139","MAPPING1H":"1140"},{"SYMBOLID":"S*G*UCDMH-*****","DESCRIPTION":"Air Defense Missile Heavy","MAPPING1U":"1141","MAPPING1F":"1142","MAPPING1N":"1143","MAPPING1H":"1144"},{"SYMBOLID":"S*G*UCDH--*****","DESCRIPTION":"H/MAD","MAPPING1U":"1145","MAPPING1F":"1146","MAPPING1N":"1147","MAPPING1H":"1148"},{"SYMBOLID":"S*G*UCDHH-*****","DESCRIPTION":"Hawk","MAPPING1U":"1149","MAPPING1F":"1150","MAPPING1N":"1151","MAPPING1H":"1152"},{"SYMBOLID":"S*G*UCDHP-*****","DESCRIPTION":"Patriot","MAPPING1U":"1153","MAPPING1F":"1154","MAPPING1N":"1155","MAPPING1H":"1156"},{"SYMBOLID":"S*G*UCDG--*****","DESCRIPTION":"Gun Unit","MAPPING1U":"1157","MAPPING1F":"1158","MAPPING1N":"1159","MAPPING1H":"1160"},{"SYMBOLID":"S*G*UCDC--*****","DESCRIPTION":"Air Defense Composite","MAPPING1U":"1161","MAPPING1F":"1162","MAPPING1N":"1163","MAPPING1H":"1164"},{"SYMBOLID":"S*G*UCDT--*****","DESCRIPTION":"Targeting Unit","MAPPING1U":"1165","MAPPING1F":"1166","MAPPING1N":"1167","MAPPING1H":"1168"},{"SYMBOLID":"S*G*UCDO--*****","DESCRIPTION":"Theater Missile Defense Unit","MAPPING1U":"1169","MAPPING1F":"1170","MAPPING1N":"1171","MAPPING1H":"1172"},{"SYMBOLID":"S*G*UCA---*****","DESCRIPTION":"Armor","MAPPING1U":"1173","MAPPING1F":"1173","MAPPING1N":"1173","MAPPING1H":"1173"},{"SYMBOLID":"S*G*UCAT--*****","DESCRIPTION":"Armor Track","MAPPING1U":"1173","MAPPING1F":"1173","MAPPING1N":"1173","MAPPING1H":"1173"},{"SYMBOLID":"S*G*UCATA-*****","DESCRIPTION":"Armor Track Airborne","MAPPING1U":"1174","MAPPING1F":"1174","MAPPING1N":"1174","MAPPING1H":"1174"},{"SYMBOLID":"S*G*UCATW-*****","DESCRIPTION":"Armor Track Amphibious","MAPPING1U":"1175","MAPPING1F":"1176","MAPPING1N":"1177","MAPPING1H":"1178"},{"SYMBOLID":"S*G*UCATWR*****","DESCRIPTION":"Armor Track Amphibious Recovery","MAPPING1U":"1179","MAPPING1F":"1180","MAPPING1N":"1181","MAPPING1H":"1182"},{"SYMBOLID":"S*G*UCATL-*****","DESCRIPTION":"Armor Track, Light","MAPPING1U":"1183","MAPPING1F":"1183","MAPPING1N":"1183","MAPPING1H":"1183"},{"SYMBOLID":"S*G*UCATM-*****","DESCRIPTION":"Armor Track, Medium","MAPPING1U":"1184","MAPPING1F":"1184","MAPPING1N":"1184","MAPPING1H":"1184"},{"SYMBOLID":"S*G*UCATH-*****","DESCRIPTION":"Armor Track, Heavy","MAPPING1U":"1185","MAPPING1F":"1185","MAPPING1N":"1185","MAPPING1H":"1185"},{"SYMBOLID":"S*G*UCATR-*****","DESCRIPTION":"Armor Track, Recovery","MAPPING1U":"1186","MAPPING1F":"1186","MAPPING1N":"1186","MAPPING1H":"1186"},{"SYMBOLID":"S*G*UCAW--*****","DESCRIPTION":"Armor, Wheeled","MAPPING1U":"1187","MAPPING1F":"1187","MAPPING1N":"1187","MAPPING1H":"1187"},{"SYMBOLID":"S*G*UCAWS-*****","DESCRIPTION":"Armor, Wheeled Air Assault","MAPPING1U":"1188","MAPPING1F":"1188","MAPPING1N":"1188","MAPPING1H":"1188"},{"SYMBOLID":"S*G*UCAWA-*****","DESCRIPTION":"Armor, Wheeled Airborne","MAPPING1U":"1189","MAPPING1F":"1189","MAPPING1N":"1189","MAPPING1H":"1189"},{"SYMBOLID":"S*G*UCAWW-*****","DESCRIPTION":"Armor, Wheeled Amphibious","MAPPING1U":"1190","MAPPING1F":"1191","MAPPING1N":"1192","MAPPING1H":"1193"},{"SYMBOLID":"S*G*UCAWWR*****","DESCRIPTION":"Armor, Wheeled Amphibious Recovery","MAPPING1U":"1194","MAPPING1F":"1195","MAPPING1N":"1196","MAPPING1H":"1197"},{"SYMBOLID":"S*G*UCAWL-*****","DESCRIPTION":"Armor, Wheeled Light","MAPPING1U":"1198","MAPPING1F":"1198","MAPPING1N":"1198","MAPPING1H":"1198"},{"SYMBOLID":"S*G*UCAWM-*****","DESCRIPTION":"Armor, Wheeled Medium","MAPPING1U":"1199","MAPPING1F":"1199","MAPPING1N":"1199","MAPPING1H":"1199"},{"SYMBOLID":"S*G*UCAWH-*****","DESCRIPTION":"Armor, Wheeled Heavy","MAPPING1U":"1200","MAPPING1F":"1200","MAPPING1N":"1200","MAPPING1H":"1200"},{"SYMBOLID":"S*G*UCAWR-*****","DESCRIPTION":"Armor, Wheeled Recovery","MAPPING1U":"1201","MAPPING1F":"1201","MAPPING1N":"1201","MAPPING1H":"1201"},{"SYMBOLID":"S*G*UCAA--*****","DESCRIPTION":"Anti Armor","MAPPING1U":"1202","MAPPING1F":"1203","MAPPING1N":"1204","MAPPING1H":"1205"},{"SYMBOLID":"S*G*UCAAD-*****","DESCRIPTION":"Anti Armor Dismounted","MAPPING1U":"1202","MAPPING1F":"1203","MAPPING1N":"1204","MAPPING1H":"1205"},{"SYMBOLID":"S*G*UCAAL-*****","DESCRIPTION":"Anti Armor Light","MAPPING1U":"1206","MAPPING1F":"1207","MAPPING1N":"1208","MAPPING1H":"1209"},{"SYMBOLID":"S*G*UCAAM-*****","DESCRIPTION":"Anti Armor Airborne","MAPPING1U":"1210","MAPPING1F":"1211","MAPPING1N":"1212","MAPPING1H":"1213"},{"SYMBOLID":"S*G*UCAAS-*****","DESCRIPTION":"Anti Armor Air Assault","MAPPING1U":"1214","MAPPING1F":"1215","MAPPING1N":"1216","MAPPING1H":"1217"},{"SYMBOLID":"S*G*UCAAU-*****","DESCRIPTION":"Anti Armor Mountain","MAPPING1U":"1218","MAPPING1F":"1219","MAPPING1N":"1220","MAPPING1H":"1221"},{"SYMBOLID":"S*G*UCAAC-*****","DESCRIPTION":"Anti Armor Arctic","MAPPING1U":"1222","MAPPING1F":"1223","MAPPING1N":"1224","MAPPING1H":"1225"},{"SYMBOLID":"S*G*UCAAA-*****","DESCRIPTION":"Anti Armor Armored","MAPPING1U":"1226","MAPPING1F":"1227","MAPPING1N":"1228","MAPPING1H":"1229"},{"SYMBOLID":"S*G*UCAAAT*****","DESCRIPTION":"Anti Armor Armored Tracked","MAPPING1U":"1226","MAPPING1F":"1227","MAPPING1N":"1228","MAPPING1H":"1229"},{"SYMBOLID":"S*G*UCAAAW*****","DESCRIPTION":"Anti Armor Armored Wheeled","MAPPING1U":"1230","MAPPING1F":"1231","MAPPING1N":"1232","MAPPING1H":"1233"},{"SYMBOLID":"S*G*UCAAAS*****","DESCRIPTION":"Anti Armor Armored Air Assault","MAPPING1U":"1234","MAPPING1F":"1235","MAPPING1N":"1236","MAPPING1H":"1237"},{"SYMBOLID":"S*G*UCAAO-*****","DESCRIPTION":"Anti Armor Motorized","MAPPING1U":"1238","MAPPING1F":"1239","MAPPING1N":"1240","MAPPING1H":"1241"},{"SYMBOLID":"S*G*UCAAOS*****","DESCRIPTION":"Anti Armor Motorized Air Assault","MAPPING1U":"1242","MAPPING1F":"1243","MAPPING1N":"1244","MAPPING1H":"1245"},{"SYMBOLID":"S*G*UCV---*****","DESCRIPTION":"Aviation","MAPPING1U":"1246","MAPPING1F":"1246","MAPPING1N":"1246","MAPPING1H":"1246"},{"SYMBOLID":"S*G*UCVF--*****","DESCRIPTION":"Aviation Fixed Wing","MAPPING1U":"1247","MAPPING1F":"1247","MAPPING1N":"1247","MAPPING1H":"1247"},{"SYMBOLID":"S*G*UCVFU-*****","DESCRIPTION":"Utility Fixed Wing","MAPPING1U":"1248","MAPPING1F":"1248","MAPPING1N":"1248","MAPPING1H":"1248"},{"SYMBOLID":"S*G*UCVFA-*****","DESCRIPTION":"Fixed Wing Attack","MAPPING1U":"1249","MAPPING1F":"1249","MAPPING1N":"1249","MAPPING1H":"1249"},{"SYMBOLID":"S*G*UCVFR-*****","DESCRIPTION":"Recon Fixed Wing","MAPPING1U":"1250","MAPPING1F":"1250","MAPPING1N":"1250","MAPPING1H":"1250"},{"SYMBOLID":"S*G*UCVR--*****","DESCRIPTION":"Aviation Rotary Wing","MAPPING1U":"1251","MAPPING1F":"1251","MAPPING1N":"1251","MAPPING1H":"1251"},{"SYMBOLID":"S*G*UCVRA-*****","DESCRIPTION":"Attack Rotary Wing","MAPPING1U":"1252","MAPPING1F":"1252","MAPPING1N":"1252","MAPPING1H":"1252"},{"SYMBOLID":"S*G*UCVRS-*****","DESCRIPTION":"Scout Rotary Wing","MAPPING1U":"1253","MAPPING1F":"1253","MAPPING1N":"1253","MAPPING1H":"1253"},{"SYMBOLID":"S*G*UCVRW-*****","DESCRIPTION":"Antisubmarine Warfare Rotary Wing","MAPPING1U":"1254","MAPPING1F":"1254","MAPPING1N":"1254","MAPPING1H":"1254"},{"SYMBOLID":"S*G*UCVRU-*****","DESCRIPTION":"Utility Rotary Wing","MAPPING1U":"1255","MAPPING1F":"1255","MAPPING1N":"1255","MAPPING1H":"1255"},{"SYMBOLID":"S*G*UCVRUL*****","DESCRIPTION":"Light Utility Rotary Wing","MAPPING1U":"1256","MAPPING1F":"1256","MAPPING1N":"1256","MAPPING1H":"1256"},{"SYMBOLID":"S*G*UCVRUM*****","DESCRIPTION":"Medium Utility Rotary Wing","MAPPING1U":"1257","MAPPING1F":"1257","MAPPING1N":"1257","MAPPING1H":"1257"},{"SYMBOLID":"S*G*UCVRUH*****","DESCRIPTION":"Heavy Utility Rotary Wing","MAPPING1U":"1258","MAPPING1F":"1258","MAPPING1N":"1258","MAPPING1H":"1258"},{"SYMBOLID":"S*G*UCVRUC*****","DESCRIPTION":"C2 Rotary Wing","MAPPING1U":"1259","MAPPING1F":"1259","MAPPING1N":"1259","MAPPING1H":"1259"},{"SYMBOLID":"S*G*UCVRUE*****","DESCRIPTION":"Medevac Rotary Wing","MAPPING1U":"1260","MAPPING1F":"1260","MAPPING1N":"1260","MAPPING1H":"1260"},{"SYMBOLID":"S*G*UCVRM-*****","DESCRIPTION":"Mine Countermeasure Rotary Wing","MAPPING1U":"1261","MAPPING1F":"1261","MAPPING1N":"1261","MAPPING1H":"1261"},{"SYMBOLID":"S*G*UCVS--*****","DESCRIPTION":"Search and Rescue","MAPPING1U":"1262","MAPPING1F":"1262","MAPPING1N":"1262","MAPPING1H":"1262"},{"SYMBOLID":"S*G*UCVC--*****","DESCRIPTION":"Aviation Composite","MAPPING1U":"1263","MAPPING1F":"1263","MAPPING1N":"1263","MAPPING1H":"1263"},{"SYMBOLID":"S*G*UCVV--*****","DESCRIPTION":"Vertical/Short Takeoff And Landing (V/Stol)","MAPPING1U":"1264","MAPPING1F":"1264","MAPPING1N":"1264","MAPPING1H":"1264"},{"SYMBOLID":"S*G*UCVU--*****","DESCRIPTION":"Unmanned Aerial Vehicle","MAPPING1U":"1265","MAPPING1F":"1265","MAPPING1N":"1265","MAPPING1H":"1265"},{"SYMBOLID":"S*G*UCVUF-*****","DESCRIPTION":"Unmanned Aerial Vehicle Fixed Wing","MAPPING1U":"1266","MAPPING1F":"1266","MAPPING1N":"1266","MAPPING1H":"1266"},{"SYMBOLID":"S*G*UCVUR-*****","DESCRIPTION":"Unmanned Aerial Vehicle Rotary Wing","MAPPING1U":"1267","MAPPING1F":"1267","MAPPING1N":"1267","MAPPING1H":"1267"},{"SYMBOLID":"S*G*UCI---*****","DESCRIPTION":"Infantry","MAPPING1U":"1268","MAPPING1F":"1269","MAPPING1N":"1270","MAPPING1H":"1271"},{"SYMBOLID":"S*G*UCIL--*****","DESCRIPTION":"Infantry Light","MAPPING1U":"1272","MAPPING1F":"1273","MAPPING1N":"1274","MAPPING1H":"1275"},{"SYMBOLID":"S*G*UCIM--*****","DESCRIPTION":"Infantry Motorized","MAPPING1U":"1276","MAPPING1F":"1277","MAPPING1N":"1278","MAPPING1H":"1279"},{"SYMBOLID":"S*G*UCIO--*****","DESCRIPTION":"Infantry Mountain","MAPPING1U":"1280","MAPPING1F":"1281","MAPPING1N":"1282","MAPPING1H":"1283"},{"SYMBOLID":"S*G*UCIA--*****","DESCRIPTION":"Infantry Airborne","MAPPING1U":"1284","MAPPING1F":"1285","MAPPING1N":"1286","MAPPING1H":"1287"},{"SYMBOLID":"S*G*UCIS--*****","DESCRIPTION":"Infantry Air Assault","MAPPING1U":"1288","MAPPING1F":"1289","MAPPING1N":"1290","MAPPING1H":"1291"},{"SYMBOLID":"S*G*UCIZ--*****","DESCRIPTION":"Infantry Mechanized","MAPPING1U":"1292","MAPPING1F":"1293","MAPPING1N":"1294","MAPPING1H":"1295"},{"SYMBOLID":"S*G*UCIN--*****","DESCRIPTION":"Infantry Naval","MAPPING1U":"1296","MAPPING1F":"1297","MAPPING1N":"1298","MAPPING1H":"1299"},{"SYMBOLID":"S*G*UCII--*****","DESCRIPTION":"Infantry Fighting Vehicle","MAPPING1U":"1300","MAPPING1F":"1301","MAPPING1N":"1302","MAPPING1H":"1303"},{"SYMBOLID":"S*G*UCIC--*****","DESCRIPTION":"Infantry Arctic","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"1092"},{"SYMBOLID":"S*G*UCE---*****","DESCRIPTION":"Engineer","MAPPING1U":"1304","MAPPING1F":"1304","MAPPING1N":"1304","MAPPING1H":"1304"},{"SYMBOLID":"S*G*UCEC--*****","DESCRIPTION":"Engineer Combat","MAPPING1U":"1305","MAPPING1F":"1305","MAPPING1N":"1305","MAPPING1H":"1305"},{"SYMBOLID":"S*G*UCECS-*****","DESCRIPTION":"Engineer Combat Air Assault","MAPPING1U":"1306","MAPPING1F":"1306","MAPPING1N":"1306","MAPPING1H":"1306"},{"SYMBOLID":"S*G*UCECA-*****","DESCRIPTION":"Engineer Combat Airborne","MAPPING1U":"1307","MAPPING1F":"1307","MAPPING1N":"1307","MAPPING1H":"1307"},{"SYMBOLID":"S*G*UCECC-*****","DESCRIPTION":"Engineer Combat Arctic","MAPPING1U":"1308","MAPPING1F":"1308","MAPPING1N":"1308","MAPPING1H":"1308"},{"SYMBOLID":"S*G*UCECL-*****","DESCRIPTION":"Engineer Combat Light (Sapper)","MAPPING1U":"1309","MAPPING1F":"1309","MAPPING1N":"1309","MAPPING1H":"1309"},{"SYMBOLID":"S*G*UCECM-*****","DESCRIPTION":"Engineer Combat Medium","MAPPING1U":"1310","MAPPING1F":"1310","MAPPING1N":"1310","MAPPING1H":"1310"},{"SYMBOLID":"S*G*UCECH-*****","DESCRIPTION":"Engineer Combat Heavy","MAPPING1U":"1311","MAPPING1F":"1311","MAPPING1N":"1311","MAPPING1H":"1311"},{"SYMBOLID":"S*G*UCECT-*****","DESCRIPTION":"Engineer Combat Mechanized (Track)","MAPPING1U":"1312","MAPPING1F":"1312","MAPPING1N":"1312","MAPPING1H":"1312"},{"SYMBOLID":"S*G*UCECW-*****","DESCRIPTION":"Engineer Combat Motorized","MAPPING1U":"1313","MAPPING1F":"1314","MAPPING1N":"1315","MAPPING1H":"1316"},{"SYMBOLID":"S*G*UCECO-*****","DESCRIPTION":"Engineer Combat Mountain","MAPPING1U":"1317","MAPPING1F":"1317","MAPPING1N":"1317","MAPPING1H":"1317"},{"SYMBOLID":"S*G*UCECR-*****","DESCRIPTION":"Engineer Combat Recon","MAPPING1U":"1318","MAPPING1F":"1319","MAPPING1N":"1320","MAPPING1H":"1321"},{"SYMBOLID":"S*G*UCEN--*****","DESCRIPTION":"Engineer Construction","MAPPING1U":"1322","MAPPING1F":"1322","MAPPING1N":"1322","MAPPING1H":"1322"},{"SYMBOLID":"S*G*UCENN-*****","DESCRIPTION":"Engineer Naval Construction","MAPPING1U":"1323","MAPPING1F":"1323","MAPPING1N":"1323","MAPPING1H":"1323"},{"SYMBOLID":"S*G*UCF---*****","DESCRIPTION":"Field Artillery","MAPPING1U":"1324","MAPPING1F":"1324","MAPPING1N":"1324","MAPPING1H":"1324"},{"SYMBOLID":"S*G*UCFH--*****","DESCRIPTION":"Howitzer/Gun","MAPPING1U":"1324","MAPPING1F":"1324","MAPPING1N":"1324","MAPPING1H":"1324"},{"SYMBOLID":"S*G*UCFHE-*****","DESCRIPTION":"Self-Propelled","MAPPING1U":"1325","MAPPING1F":"1325","MAPPING1N":"1325","MAPPING1H":"1325"},{"SYMBOLID":"S*G*UCFHS-*****","DESCRIPTION":"Howitzer/Gun Air Assault","MAPPING1U":"1326","MAPPING1F":"1326","MAPPING1N":"1326","MAPPING1H":"1326"},{"SYMBOLID":"S*G*UCFHA-*****","DESCRIPTION":"Howitzer/Gun Airborne","MAPPING1U":"1327","MAPPING1F":"1327","MAPPING1N":"1327","MAPPING1H":"1327"},{"SYMBOLID":"S*G*UCFHC-*****","DESCRIPTION":"Arctic","MAPPING1U":"1328","MAPPING1F":"1328","MAPPING1N":"1328","MAPPING1H":"1328"},{"SYMBOLID":"S*G*UCFHO-*****","DESCRIPTION":"Howitzer/Gun Mountain","MAPPING1U":"1329","MAPPING1F":"1329","MAPPING1N":"1329","MAPPING1H":"1329"},{"SYMBOLID":"S*G*UCFHL-*****","DESCRIPTION":"Howitzer/Gun Light","MAPPING1U":"1330","MAPPING1F":"1330","MAPPING1N":"1330","MAPPING1H":"1330"},{"SYMBOLID":"S*G*UCFHM-*****","DESCRIPTION":"Howitzer/Gun Medium","MAPPING1U":"1331","MAPPING1F":"1331","MAPPING1N":"1331","MAPPING1H":"1331"},{"SYMBOLID":"S*G*UCFHH-*****","DESCRIPTION":"Heavy","MAPPING1U":"1332","MAPPING1F":"1332","MAPPING1N":"1332","MAPPING1H":"1332"},{"SYMBOLID":"S*G*UCFHX-*****","DESCRIPTION":"Amphibious","MAPPING1U":"1333","MAPPING1F":"1334","MAPPING1N":"1335","MAPPING1H":"1336"},{"SYMBOLID":"S*G*UCFR--*****","DESCRIPTION":"Rocket","MAPPING1U":"1337","MAPPING1F":"1337","MAPPING1N":"1337","MAPPING1H":"1337"},{"SYMBOLID":"S*G*UCFRS-*****","DESCRIPTION":"Rocket Single Rocket Launcher","MAPPING1U":"1338","MAPPING1F":"1338","MAPPING1N":"1338","MAPPING1H":"1338"},{"SYMBOLID":"S*G*UCFRSS*****","DESCRIPTION":"Single Rocket Self-Propelled","MAPPING1U":"1339","MAPPING1F":"1339","MAPPING1N":"1339","MAPPING1H":"1339"},{"SYMBOLID":"S*G*UCFRSR*****","DESCRIPTION":"Single Rocket Truck","MAPPING1U":"1340","MAPPING1F":"1340","MAPPING1N":"1340","MAPPING1H":"1340"},{"SYMBOLID":"S*G*UCFRST*****","DESCRIPTION":"Single Rocket Towed","MAPPING1U":"1341","MAPPING1F":"1341","MAPPING1N":"1341","MAPPING1H":"1341"},{"SYMBOLID":"S*G*UCFRM-*****","DESCRIPTION":"Multi Rocket Launcher","MAPPING1U":"1342","MAPPING1F":"1342","MAPPING1N":"1342","MAPPING1H":"1342"},{"SYMBOLID":"S*G*UCFRMS*****","DESCRIPTION":"Multi Rocket Self-Propelled","MAPPING1U":"1343","MAPPING1F":"1343","MAPPING1N":"1343","MAPPING1H":"1343"},{"SYMBOLID":"S*G*UCFRMR*****","DESCRIPTION":"Multi Rocket Truck","MAPPING1U":"1344","MAPPING1F":"1344","MAPPING1N":"1344","MAPPING1H":"1344"},{"SYMBOLID":"S*G*UCFRMT*****","DESCRIPTION":"Multi Rocket Towed","MAPPING1U":"1345","MAPPING1F":"1345","MAPPING1N":"1345","MAPPING1H":"1345"},{"SYMBOLID":"S*G*UCFT--*****","DESCRIPTION":"Target Acquisition","MAPPING1U":"1346","MAPPING1F":"1346","MAPPING1N":"1346","MAPPING1H":"1346"},{"SYMBOLID":"S*G*UCFTR-*****","DESCRIPTION":"Target Acquisition Radar","MAPPING1U":"1347","MAPPING1F":"1347","MAPPING1N":"1347","MAPPING1H":"1347"},{"SYMBOLID":"S*G*UCFTS-*****","DESCRIPTION":"Sound","MAPPING1U":"1348","MAPPING1F":"1349","MAPPING1N":"1350","MAPPING1H":"1351","MAPPING2":"405","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFTF-*****","DESCRIPTION":"Flash (Optical)","MAPPING1U":"1352","MAPPING1F":"1352","MAPPING1N":"1352","MAPPING1H":"1352"},{"SYMBOLID":"S*G*UCFTC-*****","DESCRIPTION":"Colt/Fist","MAPPING1U":"1353","MAPPING1F":"1354","MAPPING1N":"1355","MAPPING1H":"1356"},{"SYMBOLID":"S*G*UCFTCD*****","DESCRIPTION":"Dismounted Colt/Fist","MAPPING1U":"1357","MAPPING1F":"1358","MAPPING1N":"1359","MAPPING1H":"1360"},{"SYMBOLID":"S*G*UCFTCM*****","DESCRIPTION":"Tracked Colt/Fist","MAPPING1U":"1361","MAPPING1F":"1362","MAPPING1N":"1363","MAPPING1H":"1364"},{"SYMBOLID":"S*G*UCFTA-*****","DESCRIPTION":"Anglico","MAPPING1U":"1365","MAPPING1F":"1366","MAPPING1N":"1367","MAPPING1H":"1368"},{"SYMBOLID":"S*G*UCFM--*****","DESCRIPTION":"Field Artillery Mortar","MAPPING1U":"1369","MAPPING1F":"1369","MAPPING1N":"1369","MAPPING1H":"1369"},{"SYMBOLID":"S*G*UCFMS-*****","DESCRIPTION":"Self-Propelled (SP) Tracked Mortar","MAPPING1U":"1370","MAPPING1F":"1370","MAPPING1N":"1370","MAPPING1H":"1370"},{"SYMBOLID":"S*G*UCFMW-*****","DESCRIPTION":"SP Wheeled Mortar","MAPPING1U":"1371","MAPPING1F":"1371","MAPPING1N":"1371","MAPPING1H":"1371"},{"SYMBOLID":"S*G*UCFMT-*****","DESCRIPTION":"Towed Mortar","MAPPING1U":"1372","MAPPING1F":"1372","MAPPING1N":"1372","MAPPING1H":"1372"},{"SYMBOLID":"S*G*UCFMTA*****","DESCRIPTION":"Towed Airborne Mortar","MAPPING1U":"1373","MAPPING1F":"1373","MAPPING1N":"1373","MAPPING1H":"1373"},{"SYMBOLID":"S*G*UCFMTS*****","DESCRIPTION":"Towed Air Assault Mortar","MAPPING1U":"1374","MAPPING1F":"1374","MAPPING1N":"1374","MAPPING1H":"1374"},{"SYMBOLID":"S*G*UCFMTC*****","DESCRIPTION":"Towed Arctic Mortar","MAPPING1U":"1375","MAPPING1F":"1375","MAPPING1N":"1375","MAPPING1H":"1375"},{"SYMBOLID":"S*G*UCFMTO*****","DESCRIPTION":"Towed Mountain Mortar","MAPPING1U":"1376","MAPPING1F":"1376","MAPPING1N":"1376","MAPPING1H":"1376"},{"SYMBOLID":"S*G*UCFML-*****","DESCRIPTION":"Amphibious Mortar","MAPPING1U":"1377","MAPPING1F":"1378","MAPPING1N":"1379","MAPPING1H":"1380"},{"SYMBOLID":"S*G*UCFS--*****","DESCRIPTION":"Artillery Survey","MAPPING1U":"1381","MAPPING1F":"1381","MAPPING1N":"1381","MAPPING1H":"1381","MAPPING2":"1382","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSS-*****","DESCRIPTION":"Artillery Survey Air Assault","MAPPING1U":"1383","MAPPING1F":"1383","MAPPING1N":"1383","MAPPING1H":"1383","MAPPING2":"1384","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSA-*****","DESCRIPTION":"Artillery Survey Airborne","MAPPING1U":"1385","MAPPING1F":"1385","MAPPING1N":"1385","MAPPING1H":"1385","MAPPING2":"1386","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSL-*****","DESCRIPTION":"Artillery Survey Light","MAPPING1U":"1387","MAPPING1F":"1387","MAPPING1N":"1387","MAPPING1H":"1387","MAPPING2":"1388","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSO-*****","DESCRIPTION":"Artillery Survey Mountain","MAPPING1U":"1389","MAPPING1F":"1389","MAPPING1N":"1389","MAPPING1H":"1389","MAPPING2":"1390","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFO--*****","DESCRIPTION":"Field Artillery Meteorological","MAPPING1U":"1391","MAPPING1F":"1391","MAPPING1N":"1391","MAPPING1H":"1391"},{"SYMBOLID":"S*G*UCFOS-*****","DESCRIPTION":"Air Assault Meteorological","MAPPING1U":"1392","MAPPING1F":"1392","MAPPING1N":"1392","MAPPING1H":"1392"},{"SYMBOLID":"S*G*UCFOA-*****","DESCRIPTION":"Airborne Meteorological","MAPPING1U":"1393","MAPPING1F":"1393","MAPPING1N":"1393","MAPPING1H":"1393"},{"SYMBOLID":"S*G*UCFOL-*****","DESCRIPTION":"Light Meteorological","MAPPING1U":"1394","MAPPING1F":"1394","MAPPING1N":"1394","MAPPING1H":"1394"},{"SYMBOLID":"S*G*UCFOO-*****","DESCRIPTION":"Mountain Meteorological","MAPPING1U":"1395","MAPPING1F":"1395","MAPPING1N":"1395","MAPPING1H":"1395"},{"SYMBOLID":"S*G*UCR---*****","DESCRIPTION":"Combat Reconnaissance","MAPPING1U":"1396","MAPPING1F":"1397","MAPPING1N":"1398","MAPPING1H":"1399"},{"SYMBOLID":"S*G*UCRH--*****","DESCRIPTION":"Reconnaissance Horse","MAPPING1U":"1400","MAPPING1F":"1400","MAPPING1N":"1400","MAPPING1H":"1400"},{"SYMBOLID":"S*G*UCRV--*****","DESCRIPTION":"Reconnaissance Cavalry","MAPPING1U":"1401","MAPPING1F":"1402","MAPPING1N":"1403","MAPPING1H":"1404"},{"SYMBOLID":"S*G*UCRVA-*****","DESCRIPTION":"Reconnaissance Cavalry Armored","MAPPING1U":"1405","MAPPING1F":"1406","MAPPING1N":"1407","MAPPING1H":"1408"},{"SYMBOLID":"S*G*UCRVM-*****","DESCRIPTION":"Reconnaissance Cavalry Motorized","MAPPING1U":"1409","MAPPING1F":"1410","MAPPING1N":"1411","MAPPING1H":"1412"},{"SYMBOLID":"S*G*UCRVG-*****","DESCRIPTION":"Reconnaissance Cavalry Ground","MAPPING1U":"1413","MAPPING1F":"1414","MAPPING1N":"1415","MAPPING1H":"1416"},{"SYMBOLID":"S*G*UCRVO-*****","DESCRIPTION":"Reconnaissance Cavalry Air","MAPPING1U":"1417","MAPPING1F":"1418","MAPPING1N":"1419","MAPPING1H":"1420"},{"SYMBOLID":"S*G*UCRC--*****","DESCRIPTION":"Reconnaissance Arctic","MAPPING1U":"1421","MAPPING1F":"1422","MAPPING1N":"1423","MAPPING1H":"1424"},{"SYMBOLID":"S*G*UCRS--*****","DESCRIPTION":"Reconnaissance Air Assault","MAPPING1U":"1425","MAPPING1F":"1426","MAPPING1N":"1427","MAPPING1H":"1428"},{"SYMBOLID":"S*G*UCRA--*****","DESCRIPTION":"Reconnaissance Airborne","MAPPING1U":"1429","MAPPING1F":"1430","MAPPING1N":"1431","MAPPING1H":"1432"},{"SYMBOLID":"S*G*UCRO--*****","DESCRIPTION":"Reconnaissance Mountain","MAPPING1U":"1433","MAPPING1F":"1434","MAPPING1N":"1435","MAPPING1H":"1436"},{"SYMBOLID":"S*G*UCRL--*****","DESCRIPTION":"Reconnaissance Light","MAPPING1U":"1437","MAPPING1F":"1438","MAPPING1N":"1439","MAPPING1H":"1440"},{"SYMBOLID":"S*G*UCRR--*****","DESCRIPTION":"Reconnaissance Marine","MAPPING1U":"1441","MAPPING1F":"1442","MAPPING1N":"1443","MAPPING1H":"1444"},{"SYMBOLID":"S*G*UCRRD-*****","DESCRIPTION":"Reconnaissance Marine Division","MAPPING1U":"1445","MAPPING1F":"1446","MAPPING1N":"1447","MAPPING1H":"1448"},{"SYMBOLID":"S*G*UCRRF-*****","DESCRIPTION":"Reconnaissance Marine Force","MAPPING1U":"1449","MAPPING1F":"1450","MAPPING1N":"1451","MAPPING1H":"1452"},{"SYMBOLID":"S*G*UCRRL-*****","DESCRIPTION":"Reconnaissance Marine Light Armored (LAR)","MAPPING1U":"1453","MAPPING1F":"1454","MAPPING1N":"1455","MAPPING1H":"1456"},{"SYMBOLID":"S*G*UCRX--*****","DESCRIPTION":"Reconnaissance Long Range Surveillance (LRS)","MAPPING1U":"1457","MAPPING1F":"1458","MAPPING1N":"1459","MAPPING1H":"1460"},{"SYMBOLID":"S*G*UCM---*****","DESCRIPTION":"Missile (Surf-Surf)","MAPPING1U":"1461","MAPPING1F":"1461","MAPPING1N":"1461","MAPPING1H":"1461"},{"SYMBOLID":"S*G*UCMT--*****","DESCRIPTION":"Missile (Surf-Surf) Tactical","MAPPING1U":"1462","MAPPING1F":"1462","MAPPING1N":"1462","MAPPING1H":"1462"},{"SYMBOLID":"S*G*UCMS--*****","DESCRIPTION":"Missile (Surf-Surf) Strategic","MAPPING1U":"1463","MAPPING1F":"1463","MAPPING1N":"1463","MAPPING1H":"1463"},{"SYMBOLID":"S*G*UCS---*****","DESCRIPTION":"Internal Security Forces","MAPPING1U":"1464","MAPPING1F":"1464","MAPPING1N":"1464","MAPPING1H":"1464"},{"SYMBOLID":"S*G*UCSW--*****","DESCRIPTION":"Internal Security Forces Riverine","MAPPING1U":"1465","MAPPING1F":"1466","MAPPING1N":"1467","MAPPING1H":"1468"},{"SYMBOLID":"S*G*UCSG--*****","DESCRIPTION":"Internal Security Forces Ground","MAPPING1U":"1469","MAPPING1F":"1469","MAPPING1N":"1469","MAPPING1H":"1469"},{"SYMBOLID":"S*G*UCSGD-*****","DESCRIPTION":"Internal Security Forces Dismounted","MAPPING1U":"1470","MAPPING1F":"1471","MAPPING1N":"1472","MAPPING1H":"1473"},{"SYMBOLID":"S*G*UCSGM-*****","DESCRIPTION":"Internal Security Forces Motorized","MAPPING1U":"1474","MAPPING1F":"1475","MAPPING1N":"1476","MAPPING1H":"1477"},{"SYMBOLID":"S*G*UCSGA-*****","DESCRIPTION":"Internal Security Forces Mechanized","MAPPING1U":"1478","MAPPING1F":"1478","MAPPING1N":"1478","MAPPING1H":"1478"},{"SYMBOLID":"S*G*UCSM--*****","DESCRIPTION":"Internal Security Forces Wheeled Mechanized","MAPPING1U":"1479","MAPPING1F":"1479","MAPPING1N":"1479","MAPPING1H":"1479"},{"SYMBOLID":"S*G*UCSR--*****","DESCRIPTION":"Internal Security Forces Railroad","MAPPING1U":"1480","MAPPING1F":"1480","MAPPING1N":"1480","MAPPING1H":"1480"},{"SYMBOLID":"S*G*UCSA--*****","DESCRIPTION":"Internal Security Forces Aviation","MAPPING1U":"1481","MAPPING1F":"1481","MAPPING1N":"1481","MAPPING1H":"1481"},{"SYMBOLID":"S*G*UCL---*****","DESCRIPTION":"Surveillance Unit","MAPPING1U":"1890","MAPPING1F":"1890","MAPPING1N":"1890","MAPPING1H":"1890"},{"SYMBOLID":"S*G*UU----*****","DESCRIPTION":"Combat Support","MAPPING1U":"1482","MAPPING1F":"1482","MAPPING1N":"1482","MAPPING1H":"1482"},{"SYMBOLID":"S*G*UUA---*****","DESCRIPTION":"Combat Support NBC","MAPPING1U":"1483","MAPPING1F":"1483","MAPPING1N":"1483","MAPPING1H":"1483"},{"SYMBOLID":"S*G*UUAC--*****","DESCRIPTION":"Combat Support Chemical","MAPPING1U":"1484","MAPPING1F":"1484","MAPPING1N":"1484","MAPPING1H":"1484"},{"SYMBOLID":"S*G*UUACC-*****","DESCRIPTION":"Smoke/Decon","MAPPING1U":"1485","MAPPING1F":"1485","MAPPING1N":"1485","MAPPING1H":"1485"},{"SYMBOLID":"S*G*UUACCK*****","DESCRIPTION":"Mechanized Smoke/Decon","MAPPING1U":"1486","MAPPING1F":"1486","MAPPING1N":"1486","MAPPING1H":"1486"},{"SYMBOLID":"S*G*UUACCM*****","DESCRIPTION":"Motorized Smoke/Decon","MAPPING1U":"1487","MAPPING1F":"1488","MAPPING1N":"1489","MAPPING1H":"1490"},{"SYMBOLID":"S*G*UUACS-*****","DESCRIPTION":"Smoke","MAPPING1U":"1491","MAPPING1F":"1491","MAPPING1N":"1491","MAPPING1H":"1491"},{"SYMBOLID":"S*G*UUACSM*****","DESCRIPTION":"Motorized Smoke","MAPPING1U":"1492","MAPPING1F":"1493","MAPPING1N":"1494","MAPPING1H":"1495"},{"SYMBOLID":"S*G*UUACSA*****","DESCRIPTION":"Armor Smoke","MAPPING1U":"1496","MAPPING1F":"1496","MAPPING1N":"1496","MAPPING1H":"1496"},{"SYMBOLID":"S*G*UUACR-*****","DESCRIPTION":"Chemical Recon","MAPPING1U":"1497","MAPPING1F":"1498","MAPPING1N":"1499","MAPPING1H":"1500"},{"SYMBOLID":"S*G*UUACRW*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle","MAPPING1U":"1501","MAPPING1F":"1502","MAPPING1N":"1503","MAPPING1H":"1504"},{"SYMBOLID":"S*G*UUACRS*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle Reconnaissance Surveillance","MAPPING1U":"1505","MAPPING1F":"1506","MAPPING1N":"1507","MAPPING1H":"1508"},{"SYMBOLID":"S*G*UUAN--*****","DESCRIPTION":"Combat Support NBC Nuclear","MAPPING1U":"1509","MAPPING1F":"1509","MAPPING1N":"1509","MAPPING1H":"1509"},{"SYMBOLID":"S*G*UUAB--*****","DESCRIPTION":"Combat Support NBC Biological","MAPPING1U":"1510","MAPPING1F":"1510","MAPPING1N":"1510","MAPPING1H":"1510"},{"SYMBOLID":"S*G*UUABR-*****","DESCRIPTION":"Recon Equipped","MAPPING1U":"1511","MAPPING1F":"1512","MAPPING1N":"1513","MAPPING1H":"1514"},{"SYMBOLID":"S*G*UUAD--*****","DESCRIPTION":"NBC Decontamination","MAPPING1U":"1515","MAPPING1F":"1515","MAPPING1N":"1515","MAPPING1H":"1515"},{"SYMBOLID":"S*G*UUM---*****","DESCRIPTION":"Military Intelligence","MAPPING1U":"1516","MAPPING1F":"1516","MAPPING1N":"1516","MAPPING1H":"1516"},{"SYMBOLID":"S*G*UUMA--*****","DESCRIPTION":"Aerial Exploitation","MAPPING1U":"1517","MAPPING1F":"1517","MAPPING1N":"1517","MAPPING1H":"1517"},{"SYMBOLID":"S*G*UUMS--*****","DESCRIPTION":"Signal Intelligence (SIGINT)","MAPPING1U":"1518","MAPPING1F":"1518","MAPPING1N":"1518","MAPPING1H":"1518"},{"SYMBOLID":"S*G*UUMSE-*****","DESCRIPTION":"Electronic Warfare","MAPPING1U":"1519","MAPPING1F":"1519","MAPPING1N":"1519","MAPPING1H":"1519"},{"SYMBOLID":"S*G*UUMSEA*****","DESCRIPTION":"Armored Wheeled Vehicle","MAPPING1U":"600","MAPPING1F":"601","MAPPING1N":"602","MAPPING1H":"603","MAPPING2":"1520","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUMSED*****","DESCRIPTION":"Direction Finding","MAPPING1U":"1521","MAPPING1F":"1521","MAPPING1N":"1521","MAPPING1H":"1521"},{"SYMBOLID":"S*G*UUMSEI*****","DESCRIPTION":"Intercept","MAPPING1U":"1522","MAPPING1F":"1522","MAPPING1N":"1522","MAPPING1H":"1522"},{"SYMBOLID":"S*G*UUMSEJ*****","DESCRIPTION":"Jamming","MAPPING1U":"1523","MAPPING1F":"1524","MAPPING1N":"1525","MAPPING1H":"1526"},{"SYMBOLID":"S*G*UUMSET*****","DESCRIPTION":"Theater","MAPPING1U":"1527","MAPPING1F":"1528","MAPPING1N":"1529","MAPPING1H":"1530"},{"SYMBOLID":"S*G*UUMSEC*****","DESCRIPTION":"Corps","MAPPING1U":"1531","MAPPING1F":"1532","MAPPING1N":"1533","MAPPING1H":"1534"},{"SYMBOLID":"S*G*UUMC--*****","DESCRIPTION":"Counter Intelligence","MAPPING1U":"1535","MAPPING1F":"1535","MAPPING1N":"1535","MAPPING1H":"1535"},{"SYMBOLID":"S*G*UUMR--*****","DESCRIPTION":"Counter Intelligence Surveillance","MAPPING1U":"1536","MAPPING1F":"1536","MAPPING1N":"1536","MAPPING1H":"1536"},{"SYMBOLID":"S*G*UUMRG-*****","DESCRIPTION":"Ground Surveillance Radar","MAPPING1U":"1537","MAPPING1F":"1537","MAPPING1N":"1537","MAPPING1H":"1537"},{"SYMBOLID":"S*G*UUMRS-*****","DESCRIPTION":"Surveillance Sensor","MAPPING1U":"1538","MAPPING1F":"1539","MAPPING1N":"1540","MAPPING1H":"1541","MAPPING2":"1542","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUMRSS*****","DESCRIPTION":"Sensor SCM","MAPPING1U":"1543","MAPPING1F":"1544","MAPPING1N":"1545","MAPPING1H":"1546","MAPPING2":"1542","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUMRX-*****","DESCRIPTION":"Ground Station Module","MAPPING1U":"1547","MAPPING1F":"1547","MAPPING1N":"1547","MAPPING1H":"1547"},{"SYMBOLID":"S*G*UUMMO-*****","DESCRIPTION":"Surveillance Meteorological","MAPPING1U":"1548","MAPPING1F":"1548","MAPPING1N":"1548","MAPPING1H":"1548"},{"SYMBOLID":"S*G*UUMO--*****","DESCRIPTION":"Military Intelligence Operations","MAPPING1U":"1549","MAPPING1F":"1549","MAPPING1N":"1549","MAPPING1H":"1549"},{"SYMBOLID":"S*G*UUMT--*****","DESCRIPTION":"Tactical Exploit","MAPPING1U":"1550","MAPPING1F":"1550","MAPPING1N":"1550","MAPPING1H":"1550"},{"SYMBOLID":"S*G*UUMQ--*****","DESCRIPTION":"Interrogation","MAPPING1U":"1551","MAPPING1F":"1551","MAPPING1N":"1551","MAPPING1H":"1551"},{"SYMBOLID":"S*G*UUMJ--*****","DESCRIPTION":"Joint Intelligence Center","MAPPING1U":"1552","MAPPING1F":"1552","MAPPING1N":"1552","MAPPING1H":"1552"},{"SYMBOLID":"S*G*UUL---*****","DESCRIPTION":"Law Enforcement Unit","MAPPING1U":"1553","MAPPING1F":"1553","MAPPING1N":"1553","MAPPING1H":"1553"},{"SYMBOLID":"S*G*UULS--*****","DESCRIPTION":"Shore Patrol","MAPPING1U":"1554","MAPPING1F":"1554","MAPPING1N":"1554","MAPPING1H":"1554"},{"SYMBOLID":"S*G*UULM--*****","DESCRIPTION":"Military Police","MAPPING1U":"1555","MAPPING1F":"1555","MAPPING1N":"1555","MAPPING1H":"1555"},{"SYMBOLID":"S*G*UULC--*****","DESCRIPTION":"Civilian Law Enforcement","MAPPING1U":"1556","MAPPING1F":"1556","MAPPING1N":"1556","MAPPING1H":"1556"},{"SYMBOLID":"S*G*UULF--*****","DESCRIPTION":"Security Police (Air)","MAPPING1U":"1557","MAPPING1F":"1557","MAPPING1N":"1557","MAPPING1H":"1557"},{"SYMBOLID":"S*G*UULD--*****","DESCRIPTION":"Central Intelligence Division (CID)","MAPPING1U":"1558","MAPPING1F":"1558","MAPPING1N":"1558","MAPPING1H":"1558"},{"SYMBOLID":"S*G*UUS---*****","DESCRIPTION":"Signal Unit","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562"},{"SYMBOLID":"S*G*UUSA--*****","DESCRIPTION":"Area","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1563","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSC--*****","DESCRIPTION":"Communication Configured Package","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1564","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSCL-*****","DESCRIPTION":"Large Communication Configured Package (LCCP)","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1565","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSO--*****","DESCRIPTION":"Command Operations","MAPPING1U":"1559","MAPPING2":"1566","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSF--*****","DESCRIPTION":"Forward Communications","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1567","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSM--*****","DESCRIPTION":"Multiple Subscriber Element","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1568","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSMS-*****","DESCRIPTION":"Small Extension Node","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1569","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSML-*****","DESCRIPTION":"Large Extension Node","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1570","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSMN-*****","DESCRIPTION":"Node Center","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1571","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSR--*****","DESCRIPTION":"Radio Unit","MAPPING1U":"1572","MAPPING1F":"1573","MAPPING1N":"1574","MAPPING1H":"1575"},{"SYMBOLID":"S*G*UUSRS-*****","DESCRIPTION":"Tactical Satellite","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1576","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSRT-*****","DESCRIPTION":"Teletype Center","MAPPING1U":"1577","MAPPING1F":"1578","MAPPING1N":"1579","MAPPING1H":"1580"},{"SYMBOLID":"S*G*UUSRW-*****","DESCRIPTION":"Relay","MAPPING1U":"1581","MAPPING1F":"1582","MAPPING1N":"1583","MAPPING1H":"1584"},{"SYMBOLID":"S*G*UUSS--*****","DESCRIPTION":"Signal Support","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1585","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSW--*****","DESCRIPTION":"Telephone Switch","MAPPING1U":"1586","MAPPING1F":"1587","MAPPING1N":"1588","MAPPING1H":"1589"},{"SYMBOLID":"S*G*UUSX--*****","DESCRIPTION":"Electronic Ranging","MAPPING1U":"1590","MAPPING1F":"1590","MAPPING1N":"1590","MAPPING1H":"1590","MAPPING2":"1591","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUI---*****","DESCRIPTION":"Information Warfare Unit","MAPPING1U":"1592","MAPPING1F":"1592","MAPPING1N":"1592","MAPPING1H":"1592"},{"SYMBOLID":"S*G*UUP---*****","DESCRIPTION":"Landing Support","MAPPING1U":"612","MAPPING1F":"613","MAPPING1N":"614","MAPPING1H":"615","MAPPING2":"1593","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUE---*****","DESCRIPTION":"Explosive Ordnance Disposal","MAPPING1U":"1594","MAPPING1F":"1594","MAPPING1N":"1594","MAPPING1H":"1594"},{"SYMBOLID":"S*G*US----*****","DESCRIPTION":"Combat Service Support","MAPPING1U":"1595","MAPPING1F":"1595","MAPPING1N":"1595","MAPPING1H":"1595"},{"SYMBOLID":"S*G*USA---*****","DESCRIPTION":"Administrative (ADMIN)","MAPPING1U":"1596","MAPPING1F":"1596","MAPPING1N":"1596","MAPPING1H":"1596"},{"SYMBOLID":"S*G*USAT--*****","DESCRIPTION":"Admin Theater","MAPPING1U":"1597","MAPPING1F":"1598","MAPPING1N":"1599","MAPPING1H":"1600"},{"SYMBOLID":"S*G*USAC--*****","DESCRIPTION":"Admin Corps","MAPPING1U":"1601","MAPPING1F":"1602","MAPPING1N":"1603","MAPPING1H":"1604"},{"SYMBOLID":"S*G*USAJ--*****","DESCRIPTION":"Judge Advocate General (JAG)","MAPPING1U":"1605","MAPPING1F":"1605","MAPPING1N":"1605","MAPPING1H":"1605"},{"SYMBOLID":"S*G*USAJT-*****","DESCRIPTION":"JAG Theater","MAPPING1U":"1606","MAPPING1F":"1607","MAPPING1N":"1608","MAPPING1H":"1609"},{"SYMBOLID":"S*G*USAJC-*****","DESCRIPTION":"JAG Corps","MAPPING1U":"1610","MAPPING1F":"1611","MAPPING1N":"1612","MAPPING1H":"1613"},{"SYMBOLID":"S*G*USAO--*****","DESCRIPTION":"Postal","MAPPING1U":"1614","MAPPING1F":"1614","MAPPING1N":"1614","MAPPING1H":"1614"},{"SYMBOLID":"S*G*USAOT-*****","DESCRIPTION":"Postal Theater","MAPPING1U":"1615","MAPPING1F":"1616","MAPPING1N":"1617","MAPPING1H":"1618"},{"SYMBOLID":"S*G*USAOC-*****","DESCRIPTION":"Postal Corps","MAPPING1U":"1619","MAPPING1F":"1620","MAPPING1N":"1621","MAPPING1H":"1622"},{"SYMBOLID":"S*G*USAF--*****","DESCRIPTION":"Finance","MAPPING1U":"1623","MAPPING1F":"1623","MAPPING1N":"1623","MAPPING1H":"1623"},{"SYMBOLID":"S*G*USAFT-*****","DESCRIPTION":"Finance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1623","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAFC-*****","DESCRIPTION":"Finance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1623","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAS--*****","DESCRIPTION":"Personnel Services","MAPPING1U":"1624","MAPPING1F":"1624","MAPPING1N":"1624","MAPPING1H":"1624"},{"SYMBOLID":"S*G*USAST-*****","DESCRIPTION":"Personnel Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1624","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USASC-*****","DESCRIPTION":"Personnel Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1624","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAM--*****","DESCRIPTION":"Mortuary/Graves Registry","MAPPING1U":"1625","MAPPING1F":"1625","MAPPING1N":"1625","MAPPING1H":"1625"},{"SYMBOLID":"S*G*USAMT-*****","DESCRIPTION":"Mortuary/Graves Registry Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1625","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAMC-*****","DESCRIPTION":"Mortuary/Graves Registry Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1625","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAR--*****","DESCRIPTION":"Religious/Chaplain","MAPPING1U":"1626","MAPPING1F":"1626","MAPPING1N":"1626","MAPPING1H":"1626"},{"SYMBOLID":"S*G*USART-*****","DESCRIPTION":"Religious/Chaplain Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1626","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USARC-*****","DESCRIPTION":"Religious/Chaplain Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1626","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAP--*****","DESCRIPTION":"Public Affairs","MAPPING1U":"1627","MAPPING1F":"1627","MAPPING1N":"1627","MAPPING1H":"1627"},{"SYMBOLID":"S*G*USAPT-*****","DESCRIPTION":"Public Affairs Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1627","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPC-*****","DESCRIPTION":"Public Affairs Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1627","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPB-*****","DESCRIPTION":"Public Affairs Broadcast","MAPPING1U":"1628","MAPPING1F":"1628","MAPPING1N":"1628","MAPPING1H":"1628"},{"SYMBOLID":"S*G*USAPBT*****","DESCRIPTION":"Public Affairs Broadcast Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1628","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPBC*****","DESCRIPTION":"Public Affairs Broadcast Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1628","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPM-*****","DESCRIPTION":"Public Affairs Joint Information Bureau (JIB)","MAPPING1U":"1630","MAPPING1F":"1630","MAPPING1N":"1630","MAPPING1H":"1630"},{"SYMBOLID":"S*G*USAPMT*****","DESCRIPTION":"Public Affairs JIB Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1630","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPMC*****","DESCRIPTION":"Public Affairs JIB Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1630","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAX--*****","DESCRIPTION":"Replacement Holding Unit (RHU)","MAPPING1U":"1631","MAPPING1F":"1631","MAPPING1N":"1631","MAPPING1H":"1631"},{"SYMBOLID":"S*G*USAXT-*****","DESCRIPTION":"RHU Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1631","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAXC-*****","DESCRIPTION":"RHU Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1631","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAL--*****","DESCRIPTION":"Labor","MAPPING1U":"1633","MAPPING1F":"1633","MAPPING1N":"1633","MAPPING1H":"1633"},{"SYMBOLID":"S*G*USALT-*****","DESCRIPTION":"Labor Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1633","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USALC-*****","DESCRIPTION":"Labor Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1633","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAW--*****","DESCRIPTION":"Morale, Welfare, Recreation (MWR)","MAPPING1U":"1634","MAPPING1F":"1634","MAPPING1N":"1634","MAPPING1H":"1634"},{"SYMBOLID":"S*G*USAWT-*****","DESCRIPTION":"MWR Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1634","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAWC-*****","DESCRIPTION":"MWR Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1634","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAQ--*****","DESCRIPTION":"Quartermaster (Supply)","MAPPING1U":"1636","MAPPING1F":"1636","MAPPING1N":"1636","MAPPING1H":"1636"},{"SYMBOLID":"S*G*USAQT-*****","DESCRIPTION":"Quartermaster (Supply) Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1636","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAQC-*****","DESCRIPTION":"Quartermaster (Supply) Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1636","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USM---*****","DESCRIPTION":"Medical","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640"},{"SYMBOLID":"S*G*USMT--*****","DESCRIPTION":"Medical Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644"},{"SYMBOLID":"S*G*USMC--*****","DESCRIPTION":"Medical Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648"},{"SYMBOLID":"S*G*USMM--*****","DESCRIPTION":"Medical Treatment Facility","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMMT-*****","DESCRIPTION":"Medical Treatment Facility Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMMC-*****","DESCRIPTION":"Medical Treatment Facility Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMV--*****","DESCRIPTION":"Medical Veterinary","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMVT-*****","DESCRIPTION":"Medical Veterinary Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMVC-*****","DESCRIPTION":"Medical Veterinary Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMD--*****","DESCRIPTION":"Medical Dental","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMDT-*****","DESCRIPTION":"Medical Dental Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMDC-*****","DESCRIPTION":"Medical Dental Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMP--*****","DESCRIPTION":"Medical Psychological","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMPT-*****","DESCRIPTION":"Medical Psychological Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMPC-*****","DESCRIPTION":"Medical Psychological Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS---*****","DESCRIPTION":"Supply","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656"},{"SYMBOLID":"S*G*USST--*****","DESCRIPTION":"Supply Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660"},{"SYMBOLID":"S*G*USSC--*****","DESCRIPTION":"Supply Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664"},{"SYMBOLID":"S*G*USS1--*****","DESCRIPTION":"Supply Class I","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS1T-*****","DESCRIPTION":"Supply Class I Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS1C-*****","DESCRIPTION":"Supply Class I Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2--*****","DESCRIPTION":"Supply Class II","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2T-*****","DESCRIPTION":"Supply Class II Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2C-*****","DESCRIPTION":"Supply Class II Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3--*****","DESCRIPTION":"Supply Class III","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3T-*****","DESCRIPTION":"Supply Class III Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3C-*****","DESCRIPTION":"Supply Class III Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3A-*****","DESCRIPTION":"Supply Class III Aviation","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3AT*****","DESCRIPTION":"Supply Class III Aviation Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3AC*****","DESCRIPTION":"Supply Class III Aviation Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4--*****","DESCRIPTION":"Supply Class IV","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4T-*****","DESCRIPTION":"Supply Class IV Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4C-*****","DESCRIPTION":"Supply Class IV Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5--*****","DESCRIPTION":"Supply Class V","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5T-*****","DESCRIPTION":"Supply Class V Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5C-*****","DESCRIPTION":"Supply Class V Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6--*****","DESCRIPTION":"Supply Class VI","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6T-*****","DESCRIPTION":"Supply Class VI Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6C-*****","DESCRIPTION":"Supply Class VI Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7--*****","DESCRIPTION":"Supply Class VII","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7T-*****","DESCRIPTION":"Supply Class VII Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7C-*****","DESCRIPTION":"Supply Class VII Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS8--*****","DESCRIPTION":"Supply Class VIII","MAPPING1U":"1673","MAPPING1F":"1674","MAPPING1N":"1675","MAPPING1H":"1676"},{"SYMBOLID":"S*G*USS8T-*****","DESCRIPTION":"Supply Class VIII Theater","MAPPING1U":"1677","MAPPING1F":"1678","MAPPING1N":"1679","MAPPING1H":"1680"},{"SYMBOLID":"S*G*USS8C-*****","DESCRIPTION":"Supply Class VIII Corps","MAPPING1U":"1681","MAPPING1F":"1682","MAPPING1N":"1683","MAPPING1H":"1684"},{"SYMBOLID":"S*G*USS9--*****","DESCRIPTION":"Supply Class IX","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS9T-*****","DESCRIPTION":"Supply Class IX Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS9C-*****","DESCRIPTION":"Supply Class IX Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSX--*****","DESCRIPTION":"Supply Class X","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSXT-*****","DESCRIPTION":"Supply Class X Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSXC-*****","DESCRIPTION":"Supply Class X Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSL--*****","DESCRIPTION":"Supply Laundry/Bath","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSLT-*****","DESCRIPTION":"Supply Laundry/Bath Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSLC-*****","DESCRIPTION":"Supply Laundry/Bath Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSW--*****","DESCRIPTION":"Supply Water","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWT-*****","DESCRIPTION":"Supply Water Theater","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWC-*****","DESCRIPTION":"Supply Water Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWP-*****","DESCRIPTION":"Supply Water Purification","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWPT*****","DESCRIPTION":"Supply Water Purification Theater","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWPC*****","DESCRIPTION":"Supply Water Purification Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UST---*****","DESCRIPTION":"Transportation","MAPPING1U":"1690","MAPPING1F":"1690","MAPPING1N":"1690","MAPPING1H":"1690"},{"SYMBOLID":"S*G*USTT--*****","DESCRIPTION":"Transportation Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1690","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTC--*****","DESCRIPTION":"Transportation Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1690","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTM--*****","DESCRIPTION":"Movement Control Center (MCC)","MAPPING1U":"1691","MAPPING1F":"1691","MAPPING1N":"1691","MAPPING1H":"1691"},{"SYMBOLID":"S*G*USTMT-*****","DESCRIPTION":"MCC Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1691","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTMC-*****","DESCRIPTION":"MCC Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1691","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTR--*****","DESCRIPTION":"Railhead","MAPPING1U":"1692","MAPPING1F":"1692","MAPPING1N":"1692","MAPPING1H":"1692"},{"SYMBOLID":"S*G*USTRT-*****","DESCRIPTION":"Railhead Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1692","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTRC-*****","DESCRIPTION":"Railhead Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1692","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTS--*****","DESCRIPTION":"SPOD/SPOE","MAPPING1U":"1693","MAPPING1F":"1693","MAPPING1N":"1693","MAPPING1H":"1693"},{"SYMBOLID":"S*G*USTST-*****","DESCRIPTION":"SPOD/SPOE Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1693","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTSC-*****","DESCRIPTION":"SPOD/SPOE Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1693","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTA--*****","DESCRIPTION":"APOD/APOE","MAPPING1U":"1694","MAPPING1F":"1694","MAPPING1N":"1694","MAPPING1H":"1694"},{"SYMBOLID":"S*G*USTAT-*****","DESCRIPTION":"APOD/APOE Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1694","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTAC-*****","DESCRIPTION":"APOD/APOE Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1694","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTI--*****","DESCRIPTION":"Missile","MAPPING1U":"1695","MAPPING1F":"1695","MAPPING1N":"1695","MAPPING1H":"1695"},{"SYMBOLID":"S*G*USTIT-*****","DESCRIPTION":"Missile Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1695","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTIC-*****","DESCRIPTION":"Missile Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1695","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USX---*****","DESCRIPTION":"Maintenance","MAPPING1U":"1696","MAPPING1F":"1696","MAPPING1N":"1696","MAPPING1H":"1696"},{"SYMBOLID":"S*G*USXT--*****","DESCRIPTION":"Maintenance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1696","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXC--*****","DESCRIPTION":"Maintenance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1696","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXH--*****","DESCRIPTION":"Maintenance Heavy","MAPPING1U":"1697","MAPPING1F":"1697","MAPPING1N":"1697","MAPPING1H":"1697"},{"SYMBOLID":"S*G*USXHT-*****","DESCRIPTION":"Maintenance Heavy Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1697","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXHC-*****","DESCRIPTION":"Maintenance Heavy Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1697","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXR--*****","DESCRIPTION":"Maintenance Recovery","MAPPING1U":"1698","MAPPING1F":"1698","MAPPING1N":"1698","MAPPING1H":"1698"},{"SYMBOLID":"S*G*USXRT-*****","DESCRIPTION":"Maintenance Recovery Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1698","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXRC-*****","DESCRIPTION":"Maintenance Recovery Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1698","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXO--*****","DESCRIPTION":"Ordnance","MAPPING1U":"1699","MAPPING1F":"1699","MAPPING1N":"1699","MAPPING1H":"1699"},{"SYMBOLID":"S*G*USXOT-*****","DESCRIPTION":"Ordnance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1699","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOC-*****","DESCRIPTION":"Ordnance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1699","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOM-*****","DESCRIPTION":"Ordnance Missile","MAPPING1U":"1700","MAPPING1F":"1700","MAPPING1N":"1700","MAPPING1H":"1700"},{"SYMBOLID":"S*G*USXOMT*****","DESCRIPTION":"Ordnance Missile Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1700","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOMC*****","DESCRIPTION":"Ordnance Missile Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1700","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXE--*****","DESCRIPTION":"Electro-Optical","MAPPING1U":"1701","MAPPING1F":"1701","MAPPING1N":"1701","MAPPING1H":"1701"},{"SYMBOLID":"S*G*USXET-*****","DESCRIPTION":"Electro-Optical Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1701","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXEC-*****","DESCRIPTION":"Electro-Optical Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1701","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UH----*****","DESCRIPTION":"Special C2 Headquarters Component"},{"SYMBOLID":"S*G*E-----*****","DESCRIPTION":"Ground Track Equipment"},{"SYMBOLID":"S*G*EW----*****","DESCRIPTION":"Weapon"},{"SYMBOLID":"S*G*EWM---*****","DESCRIPTION":"Missile Launcher","MAPPING1U":"1702","MAPPING1F":"1702","MAPPING1N":"1702","MAPPING1H":"1702"},{"SYMBOLID":"S*G*EWMA--*****","DESCRIPTION":"Air Defense (AD) Missile Launcher","MAPPING1U":"1703","MAPPING1F":"1703","MAPPING1N":"1703","MAPPING1H":"1703"},{"SYMBOLID":"S*G*EWMAS-*****","DESCRIPTION":"Short Range AD Missile Launcher","MAPPING1U":"1704","MAPPING1F":"1704","MAPPING1N":"1704","MAPPING1H":"1704"},{"SYMBOLID":"S*G*EWMASR*****","DESCRIPTION":"Short Range Transporter Launcher and Radar (TLAR)","MAPPING1U":"1705","MAPPING1F":"1705","MAPPING1N":"1705","MAPPING1H":"1705"},{"SYMBOLID":"S*G*EWMASE*****","DESCRIPTION":"Short Range Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1706","MAPPING1F":"1706","MAPPING1N":"1706","MAPPING1H":"1706"},{"SYMBOLID":"S*G*EWMAI-*****","DESCRIPTION":"Intermediate Range AD Missile Launcher","MAPPING1U":"1707","MAPPING1F":"1707","MAPPING1N":"1707","MAPPING1H":"1707"},{"SYMBOLID":"S*G*EWMAIR*****","DESCRIPTION":"Intermediate Transporter Launcher and Radar (TLAR)","MAPPING1U":"1708","MAPPING1F":"1708","MAPPING1N":"1708","MAPPING1H":"1708"},{"SYMBOLID":"S*G*EWMAIE*****","DESCRIPTION":"Intermediate Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1709","MAPPING1F":"1709","MAPPING1N":"1709","MAPPING1H":"1709"},{"SYMBOLID":"S*G*EWMAL-*****","DESCRIPTION":"Long Range AD Missile Launcher","MAPPING1U":"1710","MAPPING1F":"1710","MAPPING1N":"1710","MAPPING1H":"1710"},{"SYMBOLID":"S*G*EWMALR*****","DESCRIPTION":"Long Range Transporter Launcher and Radar (TLAR)","MAPPING1U":"1711","MAPPING1F":"1711","MAPPING1N":"1711","MAPPING1H":"1711"},{"SYMBOLID":"S*G*EWMALE*****","DESCRIPTION":"Long Range Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1712","MAPPING1F":"1712","MAPPING1N":"1712","MAPPING1H":"1712"},{"SYMBOLID":"S*G*EWMAT-*****","DESCRIPTION":"AD Missile Launcher Theater","MAPPING1U":"1713","MAPPING1F":"1713","MAPPING1N":"1713","MAPPING1H":"1713"},{"SYMBOLID":"S*G*EWMATR*****","DESCRIPTION":"Theater Transporter Launcher and Radar (TLAR)","MAPPING1U":"1714","MAPPING1F":"1714","MAPPING1N":"1714","MAPPING1H":"1714"},{"SYMBOLID":"S*G*EWMATE*****","DESCRIPTION":"Theater Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1715","MAPPING1F":"1715","MAPPING1N":"1715","MAPPING1H":"1715"},{"SYMBOLID":"S*G*EWMS--*****","DESCRIPTION":"Surf-Surf (SS) Missile Launcher","MAPPING1U":"1716","MAPPING1F":"1716","MAPPING1N":"1716","MAPPING1H":"1716"},{"SYMBOLID":"S*G*EWMSS-*****","DESCRIPTION":"Short Range SS Missile Launcher","MAPPING1U":"1717","MAPPING1F":"1717","MAPPING1N":"1717","MAPPING1H":"1717"},{"SYMBOLID":"S*G*EWMSI-*****","DESCRIPTION":"Intermediate Range SS Missile Launcher","MAPPING1U":"1718","MAPPING1F":"1718","MAPPING1N":"1718","MAPPING1H":"1718"},{"SYMBOLID":"S*G*EWMSL-*****","DESCRIPTION":"Long Range SS Missile Launcher","MAPPING1U":"1719","MAPPING1F":"1719","MAPPING1N":"1719","MAPPING1H":"1719"},{"SYMBOLID":"S*G*EWMT--*****","DESCRIPTION":"Missile Launcher Antitank (AT)","MAPPING1U":"1720","MAPPING1F":"1720","MAPPING1N":"1720","MAPPING1H":"1720"},{"SYMBOLID":"S*G*EWMTL-*****","DESCRIPTION":"Missile Launcher AT Light","MAPPING1U":"1721","MAPPING1F":"1721","MAPPING1N":"1721","MAPPING1H":"1721"},{"SYMBOLID":"S*G*EWMTM-*****","DESCRIPTION":"Missile Launcher AT Medium","MAPPING1U":"1722","MAPPING1F":"1722","MAPPING1N":"1722","MAPPING1H":"1722"},{"SYMBOLID":"S*G*EWMTH-*****","DESCRIPTION":"Missile Launcher AT Heavy","MAPPING1U":"1723","MAPPING1F":"1723","MAPPING1N":"1723","MAPPING1H":"1723"},{"SYMBOLID":"S*G*EWS---*****","DESCRIPTION":"Weapon Single Rocket Launcher","MAPPING1U":"1724","MAPPING1F":"1724","MAPPING1N":"1724","MAPPING1H":"1724"},{"SYMBOLID":"S*G*EWSL--*****","DESCRIPTION":"Single Rocket Launcher Light","MAPPING1U":"1725","MAPPING1F":"1725","MAPPING1N":"1725","MAPPING1H":"1725"},{"SYMBOLID":"S*G*EWSM--*****","DESCRIPTION":"Single Rocket Launcher Medium","MAPPING1U":"1726","MAPPING1F":"1726","MAPPING1N":"1726","MAPPING1H":"1726"},{"SYMBOLID":"S*G*EWSH--*****","DESCRIPTION":"Single Rocket Launcher Heavy","MAPPING1U":"1727","MAPPING1F":"1727","MAPPING1N":"1727","MAPPING1H":"1727"},{"SYMBOLID":"S*G*EWX---*****","DESCRIPTION":"Multiple Rocket Launcher","MAPPING1U":"1728","MAPPING1F":"1728","MAPPING1N":"1728","MAPPING1H":"1728"},{"SYMBOLID":"S*G*EWXL--*****","DESCRIPTION":"Multiple Rocket Launcher Light","MAPPING1U":"1729","MAPPING1F":"1729","MAPPING1N":"1729","MAPPING1H":"1729"},{"SYMBOLID":"S*G*EWXM--*****","DESCRIPTION":"Multiple Rocket Launcher Medium","MAPPING1U":"1730","MAPPING1F":"1730","MAPPING1N":"1730","MAPPING1H":"1730"},{"SYMBOLID":"S*G*EWXH--*****","DESCRIPTION":"Multiple Rocket Launcher Heavy","MAPPING1U":"1731","MAPPING1F":"1731","MAPPING1N":"1731","MAPPING1H":"1731"},{"SYMBOLID":"S*G*EWT---*****","DESCRIPTION":"Anti-Tank Rocket Launcher","MAPPING1U":"1732","MAPPING1F":"1732","MAPPING1N":"1732","MAPPING1H":"1732"},{"SYMBOLID":"S*G*EWTL--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Light","MAPPING1U":"1733","MAPPING1F":"1733","MAPPING1N":"1733","MAPPING1H":"1733"},{"SYMBOLID":"S*G*EWTM--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Medium","MAPPING1U":"1734","MAPPING1F":"1734","MAPPING1N":"1734","MAPPING1H":"1734"},{"SYMBOLID":"S*G*EWTH--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Heavy","MAPPING1U":"1735","MAPPING1F":"1735","MAPPING1N":"1735","MAPPING1H":"1735"},{"SYMBOLID":"S*G*EWR---*****","DESCRIPTION":"Rifle/Automatic Weapon","MAPPING1U":"1736","MAPPING1F":"1736","MAPPING1N":"1736","MAPPING1H":"1736"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Rifle","MAPPING1U":"1737","MAPPING1F":"1737","MAPPING1N":"1737","MAPPING1H":"1737"},{"SYMBOLID":"S*G*EWRL--*****","DESCRIPTION":"Light Machine Gun","MAPPING1U":"1738","MAPPING1F":"1738","MAPPING1N":"1738","MAPPING1H":"1738"},{"SYMBOLID":"S*G*EWRH--*****","DESCRIPTION":"Heavy Machine Gun","MAPPING1U":"1739","MAPPING1F":"1739","MAPPING1N":"1739","MAPPING1H":"1739"},{"SYMBOLID":"S*G*EWZ---*****","DESCRIPTION":"Grenade Launcher","MAPPING1U":"1740","MAPPING1F":"1740","MAPPING1N":"1740","MAPPING1H":"1740"},{"SYMBOLID":"S*G*EWZL--*****","DESCRIPTION":"Grenade Launcher Light","MAPPING1U":"1741","MAPPING1F":"1741","MAPPING1N":"1741","MAPPING1H":"1741"},{"SYMBOLID":"S*G*EWZM--*****","DESCRIPTION":"Grenade Launcher Medium","MAPPING1U":"1742","MAPPING1F":"1742","MAPPING1N":"1742","MAPPING1H":"1742"},{"SYMBOLID":"S*G*EWZH--*****","DESCRIPTION":"Grenade Launcher Heavy","MAPPING1U":"1743","MAPPING1F":"1743","MAPPING1N":"1743","MAPPING1H":"1743"},{"SYMBOLID":"S*G*EWO---*****","DESCRIPTION":"Weapon Mortar","MAPPING1U":"1744","MAPPING1F":"1744","MAPPING1N":"1744","MAPPING1H":"1744"},{"SYMBOLID":"S*G*EWOL--*****","DESCRIPTION":"Mortar Light","MAPPING1U":"1745","MAPPING1F":"1745","MAPPING1N":"1745","MAPPING1H":"1745"},{"SYMBOLID":"S*G*EWOM--*****","DESCRIPTION":"Mortar Medium","MAPPING1U":"1746","MAPPING1F":"1746","MAPPING1N":"1746","MAPPING1H":"1746"},{"SYMBOLID":"S*G*EWOH--*****","DESCRIPTION":"Mortar Heavy","MAPPING1U":"1747","MAPPING1F":"1747","MAPPING1N":"1747","MAPPING1H":"1747"},{"SYMBOLID":"S*G*EWH---*****","DESCRIPTION":"Howitzer","MAPPING1U":"1748","MAPPING1F":"1748","MAPPING1N":"1748","MAPPING1H":"1748"},{"SYMBOLID":"S*G*EWHL--*****","DESCRIPTION":"Howitzer Light","MAPPING1U":"1749","MAPPING1F":"1749","MAPPING1N":"1749","MAPPING1H":"1749"},{"SYMBOLID":"S*G*EWHLS-*****","DESCRIPTION":"Howitzer Light Self-Propelled","MAPPING1U":"1750","MAPPING1F":"1750","MAPPING1N":"1750","MAPPING1H":"1750"},{"SYMBOLID":"S*G*EWHM--*****","DESCRIPTION":"Howitzer Medium","MAPPING1U":"1751","MAPPING1F":"1751","MAPPING1N":"1751","MAPPING1H":"1751"},{"SYMBOLID":"S*G*EWHMS-*****","DESCRIPTION":"Howitzer Medium Self-Propelled","MAPPING1U":"1752","MAPPING1F":"1752","MAPPING1N":"1752","MAPPING1H":"1752"},{"SYMBOLID":"S*G*EWHH--*****","DESCRIPTION":"Howitzer Heavy","MAPPING1U":"1753","MAPPING1F":"1753","MAPPING1N":"1753","MAPPING1H":"1753"},{"SYMBOLID":"S*G*EWHHS-*****","DESCRIPTION":"Howitzer Heavy Self-Propelled","MAPPING1U":"1754","MAPPING1F":"1754","MAPPING1N":"1754","MAPPING1H":"1754"},{"SYMBOLID":"S*G*EWG---*****","DESCRIPTION":"Anti-Tank Gun","MAPPING1U":"1755","MAPPING1F":"1755","MAPPING1N":"1755","MAPPING1H":"1755"},{"SYMBOLID":"S*G*EWGL--*****","DESCRIPTION":"Anti-Tank Gun Light","MAPPING1U":"1756","MAPPING1F":"1756","MAPPING1N":"1756","MAPPING1H":"1756"},{"SYMBOLID":"S*G*EWGM--*****","DESCRIPTION":"Anti-Tank Gun Medium","MAPPING1U":"1757","MAPPING1F":"1757","MAPPING1N":"1757","MAPPING1H":"1757"},{"SYMBOLID":"S*G*EWGH--*****","DESCRIPTION":"Anti-Tank Gun Heavy","MAPPING1U":"1758","MAPPING1F":"1758","MAPPING1N":"1758","MAPPING1H":"1758"},{"SYMBOLID":"S*G*EWGR--*****","DESCRIPTION":"Anti-Tank Gun Recoilless","MAPPING1U":"1759","MAPPING1F":"1759","MAPPING1N":"1759","MAPPING1H":"1759"},{"SYMBOLID":"S*G*EWD---*****","DESCRIPTION":"Direct Fire Gun","MAPPING1U":"1760","MAPPING1F":"1760","MAPPING1N":"1760","MAPPING1H":"1760"},{"SYMBOLID":"S*G*EWDL--*****","DESCRIPTION":"Direct Fire Gun Light","MAPPING1U":"1761","MAPPING1F":"1761","MAPPING1N":"1761","MAPPING1H":"1761"},{"SYMBOLID":"S*G*EWDLS-*****","DESCRIPTION":"Direct Fire Gun Light Self-Propelled","MAPPING1U":"1762","MAPPING1F":"1762","MAPPING1N":"1762","MAPPING1H":"1762"},{"SYMBOLID":"S*G*EWDM--*****","DESCRIPTION":"Direct Fire Gun Medium","MAPPING1U":"1763","MAPPING1F":"1763","MAPPING1N":"1763","MAPPING1H":"1763"},{"SYMBOLID":"S*G*EWDMS-*****","DESCRIPTION":"Direct Fire Gun Medium Self-Propelled","MAPPING1U":"1764","MAPPING1F":"1764","MAPPING1N":"1764","MAPPING1H":"1764"},{"SYMBOLID":"S*G*EWDH--*****","DESCRIPTION":"Direct Fire Gun Heavy","MAPPING1U":"1765","MAPPING1F":"1765","MAPPING1N":"1765","MAPPING1H":"1765"},{"SYMBOLID":"S*G*EWDHS-*****","DESCRIPTION":"Direct Fire Gun Heavy Self-Propelled","MAPPING1U":"1766","MAPPING1F":"1766","MAPPING1N":"1766","MAPPING1H":"1766"},{"SYMBOLID":"S*G*EWA---*****","DESCRIPTION":"Air Defense Gun","MAPPING1U":"1767","MAPPING1F":"1767","MAPPING1N":"1767","MAPPING1H":"1767"},{"SYMBOLID":"S*G*EWAL--*****","DESCRIPTION":"Air Defense Gun Light","MAPPING1U":"1768","MAPPING1F":"1768","MAPPING1N":"1768","MAPPING1H":"1768"},{"SYMBOLID":"S*G*EWAM--*****","DESCRIPTION":"Air Defense Gun Medium","MAPPING1U":"1769","MAPPING1F":"1769","MAPPING1N":"1769","MAPPING1H":"1769"},{"SYMBOLID":"S*G*EWAH--*****","DESCRIPTION":"Air Defense Gun Heavy","MAPPING1U":"1770","MAPPING1F":"1770","MAPPING1N":"1770","MAPPING1H":"1770"},{"SYMBOLID":"S*G*EV----*****","DESCRIPTION":"Ground Vehicle","MAPPING1U":"1771","MAPPING1F":"1771","MAPPING1N":"1771","MAPPING1H":"1771"},{"SYMBOLID":"S*G*EVA---*****","DESCRIPTION":"Armored Vehicle","MAPPING1U":"1772","MAPPING1F":"1772","MAPPING1N":"1772","MAPPING1H":"1772"},{"SYMBOLID":"S*G*EVAT--*****","DESCRIPTION":"Tank","MAPPING1U":"1773","MAPPING1F":"1773","MAPPING1N":"1773","MAPPING1H":"1773"},{"SYMBOLID":"S*G*EVATL-*****","DESCRIPTION":"Tank Light","MAPPING1U":"1774","MAPPING1F":"1774","MAPPING1N":"1774","MAPPING1H":"1774"},{"SYMBOLID":"S*G*EVATLR*****","DESCRIPTION":"Tank Light Recovery","MAPPING1U":"1775","MAPPING1F":"1775","MAPPING1N":"1775","MAPPING1H":"1775"},{"SYMBOLID":"S*G*EVATM-*****","DESCRIPTION":"Tank Medium","MAPPING1U":"1776","MAPPING1F":"1776","MAPPING1N":"1776","MAPPING1H":"1776"},{"SYMBOLID":"S*G*EVATMR*****","DESCRIPTION":"Tank Medium Recovery","MAPPING1U":"1777","MAPPING1F":"1777","MAPPING1N":"1777","MAPPING1H":"1777"},{"SYMBOLID":"S*G*EVATH-*****","DESCRIPTION":"Tank Heavy","MAPPING1U":"1778","MAPPING1F":"1778","MAPPING1N":"1778","MAPPING1H":"1778"},{"SYMBOLID":"S*G*EVATHR*****","DESCRIPTION":"Tank Heavy Recovery","MAPPING1U":"1779","MAPPING1F":"1779","MAPPING1N":"1779","MAPPING1H":"1779"},{"SYMBOLID":"S*G*EVAA--*****","DESCRIPTION":"Armored Personnel Carrier","MAPPING1U":"1780","MAPPING1F":"1780","MAPPING1N":"1780","MAPPING1H":"1780"},{"SYMBOLID":"S*G*EVAAR-*****","DESCRIPTION":"Armored Personnel Carrier Recovery","MAPPING1U":"1781","MAPPING1F":"1781","MAPPING1N":"1781","MAPPING1H":"1781"},{"SYMBOLID":"S*G*EVAI--*****","DESCRIPTION":"Armored Infantry","MAPPING1U":"1782","MAPPING1F":"1782","MAPPING1N":"1782","MAPPING1H":"1782"},{"SYMBOLID":"S*G*EVAC--*****","DESCRIPTION":"C2V/ACV","MAPPING1U":"1783","MAPPING1F":"1783","MAPPING1N":"1783","MAPPING1H":"1783"},{"SYMBOLID":"S*G*EVAS--*****","DESCRIPTION":"Combat Service Support Vehicle","MAPPING1U":"1784","MAPPING1F":"1784","MAPPING1N":"1784","MAPPING1H":"1784"},{"SYMBOLID":"S*G*EVAL--*****","DESCRIPTION":"Light Armored Vehicle","MAPPING1U":"1785","MAPPING1F":"1785","MAPPING1N":"1785","MAPPING1H":"1785"},{"SYMBOLID":"S*G*EVU---*****","DESCRIPTION":"Utility Vehicle","MAPPING1U":"1786","MAPPING1F":"1786","MAPPING1N":"1786","MAPPING1H":"1786"},{"SYMBOLID":"S*G*EVUB--*****","DESCRIPTION":"Bus","MAPPING1U":"1787","MAPPING1F":"1787","MAPPING1N":"1787","MAPPING1H":"1787"},{"SYMBOLID":"S*G*EVUS--*****","DESCRIPTION":"Semi","MAPPING1U":"1788","MAPPING1F":"1788","MAPPING1N":"1788","MAPPING1H":"1788"},{"SYMBOLID":"S*G*EVUSL-*****","DESCRIPTION":"Semi Light","MAPPING1U":"1789","MAPPING1F":"1789","MAPPING1N":"1789","MAPPING1H":"1789"},{"SYMBOLID":"S*G*EVUSM-*****","DESCRIPTION":"Semi Medium","MAPPING1U":"1790","MAPPING1F":"1790","MAPPING1N":"1790","MAPPING1H":"1790"},{"SYMBOLID":"S*G*EVUSH-*****","DESCRIPTION":"Semi Heavy","MAPPING1U":"1791","MAPPING1F":"1791","MAPPING1N":"1791","MAPPING1H":"1791"},{"SYMBOLID":"S*G*EVUL--*****","DESCRIPTION":"Limited Cross-Country Truck","MAPPING1U":"1792","MAPPING1F":"1792","MAPPING1N":"1792","MAPPING1H":"1792"},{"SYMBOLID":"S*G*EVUX--*****","DESCRIPTION":"Cross-Country Truck","MAPPING1U":"1793","MAPPING1F":"1793","MAPPING1N":"1793","MAPPING1H":"1793"},{"SYMBOLID":"S*G*EVUR--*****","DESCRIPTION":"Water Craft","MAPPING1U":"1794","MAPPING1F":"1794","MAPPING1N":"1794","MAPPING1H":"1794"},{"SYMBOLID":"S*G*EVUT--*****","DESCRIPTION":"Tow Truck","MAPPING1U":"1795","MAPPING1F":"1795","MAPPING1N":"1795","MAPPING1H":"1795"},{"SYMBOLID":"S*G*EVUTL-*****","DESCRIPTION":"Tow Truck Light","MAPPING1U":"1796","MAPPING1F":"1796","MAPPING1N":"1796","MAPPING1H":"1796"},{"SYMBOLID":"S*G*EVUTH-*****","DESCRIPTION":"Tow Truck Heavy","MAPPING1U":"1797","MAPPING1F":"1797","MAPPING1N":"1797","MAPPING1H":"1797"},{"SYMBOLID":"S*G*EVUA--*****","DESCRIPTION":"Ambulance","MAPPING1U":"1798","MAPPING1F":"1798","MAPPING1N":"1798","MAPPING1H":"1798"},{"SYMBOLID":"S*G*EVUAA-*****","DESCRIPTION":"Ambulance Armored","MAPPING1U":"1799","MAPPING1F":"1799","MAPPING1N":"1799","MAPPING1H":"1799"},{"SYMBOLID":"S*G*EVE---*****","DESCRIPTION":"Engineer Vehicle","MAPPING1U":"1800","MAPPING1F":"1800","MAPPING1N":"1800","MAPPING1H":"1800"},{"SYMBOLID":"S*G*EVEB--*****","DESCRIPTION":"Engineer Vehicle Bridge","MAPPING1U":"1894","MAPPING1F":"1894","MAPPING1N":"1894","MAPPING1H":"1894"},{"SYMBOLID":"S*G*EVEE--*****","DESCRIPTION":"Earthmover","MAPPING1U":"1801","MAPPING1F":"1801","MAPPING1N":"1801","MAPPING1H":"1801"},{"SYMBOLID":"S*G*EVEC--*****","DESCRIPTION":"Construction Vehicle","MAPPING1U":"1802","MAPPING1F":"1802","MAPPING1N":"1802","MAPPING1H":"1802"},{"SYMBOLID":"S*G*EVEM--*****","DESCRIPTION":"Mine Laying Vehicle","MAPPING1U":"1803","MAPPING1F":"1803","MAPPING1N":"1803","MAPPING1H":"1803"},{"SYMBOLID":"S*G*EVEMV-*****","DESCRIPTION":"Armored Carrier with Volcano","MAPPING1U":"1804","MAPPING1F":"1804","MAPPING1N":"1804","MAPPING1H":"1804"},{"SYMBOLID":"S*G*EVEML-*****","DESCRIPTION":"Truck Mounted with Volcano","MAPPING1U":"1805","MAPPING1F":"1805","MAPPING1N":"1805","MAPPING1H":"1805"},{"SYMBOLID":"S*G*EVEA--*****","DESCRIPTION":"Mine Clearing Vehicle","MAPPING1U":"1806","MAPPING1F":"1806","MAPPING1N":"1806","MAPPING1H":"1806"},{"SYMBOLID":"S*G*EVEAA-*****","DESCRIPTION":"Armored Mounted Mine Clearing Vehicle","MAPPING1U":"1807","MAPPING1F":"1807","MAPPING1N":"1807","MAPPING1H":"1807"},{"SYMBOLID":"S*G*EVEAT-*****","DESCRIPTION":"Trailer Mounted Mine Clearing Vehicle","MAPPING1U":"1808","MAPPING1F":"1808","MAPPING1N":"1808","MAPPING1H":"1808"},{"SYMBOLID":"S*G*EVED--*****","DESCRIPTION":"Dozer","MAPPING1U":"1809","MAPPING1F":"1809","MAPPING1N":"1809","MAPPING1H":"1809"},{"SYMBOLID":"S*G*EVEDA-*****","DESCRIPTION":"Armored Dozer","MAPPING1U":"1810","MAPPING1F":"1810","MAPPING1N":"1810","MAPPING1H":"1810"},{"SYMBOLID":"S*G*EVES--*****","DESCRIPTION":"Armored Assault","MAPPING1U":"1811","MAPPING1F":"1811","MAPPING1N":"1811","MAPPING1H":"1811"},{"SYMBOLID":"S*G*EVER--*****","DESCRIPTION":"Armored Engineer Recon Vehicle (AERV)","MAPPING1U":"1812","MAPPING1F":"1812","MAPPING1N":"1812","MAPPING1H":"1812"},{"SYMBOLID":"S*G*EVEH--*****","DESCRIPTION":"Backhoe","MAPPING1U":"1813","MAPPING1F":"1813","MAPPING1N":"1813","MAPPING1H":"1813"},{"SYMBOLID":"S*G*EVEF--*****","DESCRIPTION":"Ferry Transporter","MAPPING1U":"1814","MAPPING1F":"1814","MAPPING1N":"1814","MAPPING1H":"1814"},{"SYMBOLID":"S*G*EVT---*****","DESCRIPTION":"Train Locomotive","MAPPING1U":"1815","MAPPING1F":"1815","MAPPING1N":"1815","MAPPING1H":"1815"},{"SYMBOLID":"S*G*EVC---*****","DESCRIPTION":"Civilian Vehicle","MAPPING1U":"1816","MAPPING1F":"1816","MAPPING1N":"1816","MAPPING1H":"1816"},{"SYMBOLID":"S*G*EVCA--*****","DESCRIPTION":"Civilian Automobile","MAPPING1U":"1817","MAPPING1F":"1817","MAPPING1N":"1817","MAPPING1H":"1817","MAPPING2":"1818","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAL-*****","DESCRIPTION":"Civilian Compact Automobile","MAPPING1U":"1819","MAPPING1F":"1819","MAPPING1N":"1819","MAPPING1H":"1819","MAPPING2":"1820","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAM-*****","DESCRIPTION":"Civilian Midsize Automobile","MAPPING1U":"1821","MAPPING1F":"1821","MAPPING1N":"1821","MAPPING1H":"1821","MAPPING2":"1822","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAH-*****","DESCRIPTION":"Civilian Automobile Sedan","MAPPING1U":"1823","MAPPING1F":"1823","MAPPING1N":"1823","MAPPING1H":"1823","MAPPING2":"1824","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCO--*****","DESCRIPTION":"Civilian Open-Bed Truck","MAPPING1U":"1825","MAPPING1F":"1825","MAPPING1N":"1825","MAPPING1H":"1825","MAPPING2":"1826","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOL-*****","DESCRIPTION":"Civilian Pickup Truck","MAPPING1U":"1827","MAPPING1F":"1827","MAPPING1N":"1827","MAPPING1H":"1827","MAPPING2":"1828","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOM-*****","DESCRIPTION":"Civilian Small Open-Bed Truck","MAPPING1U":"1829","MAPPING1F":"1829","MAPPING1N":"1829","MAPPING1H":"1829","MAPPING2":"1830","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOH-*****","DESCRIPTION":"Civilian Large Open-Bed Truck","MAPPING1U":"1831","MAPPING1F":"1831","MAPPING1N":"1831","MAPPING1H":"1831","MAPPING2":"1832","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCM--*****","DESCRIPTION":"Civilian Multi-Passenger Vehicle","MAPPING1U":"1833","MAPPING1F":"1833","MAPPING1N":"1833","MAPPING1H":"1833","MAPPING2":"1834","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCML-*****","DESCRIPTION":"Civilian Multi-Passenger Van","MAPPING1U":"1835","MAPPING1F":"1835","MAPPING1N":"1835","MAPPING1H":"1835","MAPPING2":"1836","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCMM-*****","DESCRIPTION":"Civilian Small Bus","MAPPING1U":"1837","MAPPING1F":"1837","MAPPING1N":"1837","MAPPING1H":"1837","MAPPING2":"1838","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCMH-*****","DESCRIPTION":"Civilian Large Bus","MAPPING1U":"1839","MAPPING1F":"1839","MAPPING1N":"1839","MAPPING1H":"1839","MAPPING2":"1840","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCU--*****","DESCRIPTION":"Civilian Utility Vehicle","MAPPING1U":"1841","MAPPING1F":"1841","MAPPING1N":"1841","MAPPING1H":"1841","MAPPING2":"1842","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUL-*****","DESCRIPTION":"Civilian Sport Utility Vehicle (SUV)","MAPPING1U":"1843","MAPPING1F":"1843","MAPPING1N":"1843","MAPPING1H":"1843","MAPPING2":"1844","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUM-*****","DESCRIPTION":"Civilian Utility Small Box Truck","MAPPING1U":"1845","MAPPING1F":"1845","MAPPING1N":"1845","MAPPING1H":"1845","MAPPING2":"1846","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUH-*****","DESCRIPTION":"Civilian Utility Large Box Truck","MAPPING1U":"1847","MAPPING1F":"1847","MAPPING1N":"1847","MAPPING1H":"1847","MAPPING2":"1848","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJ--*****","DESCRIPTION":"Civilian Jeep Type Vehicle","MAPPING1U":"1849","MAPPING1F":"1849","MAPPING1N":"1849","MAPPING1H":"1849","MAPPING2":"1850","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJL-*****","DESCRIPTION":"Civilian Small/Light Jeep Type Vehicle","MAPPING1U":"1851","MAPPING1F":"1851","MAPPING1N":"1851","MAPPING1H":"1851","MAPPING2":"1852","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJM-*****","DESCRIPTION":"Civilian Medium Jeep Type Vehicle","MAPPING1U":"1853","MAPPING1F":"1853","MAPPING1N":"1853","MAPPING1H":"1853","MAPPING2":"1854","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJH-*****","DESCRIPTION":"Civilian Large/Heavy Jeep Type Vehicle","MAPPING1U":"1855","MAPPING1F":"1855","MAPPING1N":"1855","MAPPING1H":"1855","MAPPING2":"1856","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCT--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Box Trailer","MAPPING1U":"1857","MAPPING1F":"1857","MAPPING1N":"1857","MAPPING1H":"1857","MAPPING2":"1858","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTL-*****","DESCRIPTION":"Civilian Small/Light Box Trailer","MAPPING1U":"1859","MAPPING1F":"1859","MAPPING1N":"1859","MAPPING1H":"1859","MAPPING2":"1860","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTM-*****","DESCRIPTION":"Civilian Medium Box Trailer","MAPPING1U":"1861","MAPPING1F":"1861","MAPPING1N":"1861","MAPPING1H":"1861","MAPPING2":"1862","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTH-*****","DESCRIPTION":"Civilian Large/Heavy Box Trailer","MAPPING1U":"1863","MAPPING1F":"1863","MAPPING1N":"1863","MAPPING1H":"1863","MAPPING2":"1864","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCF--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Flatbed Trailer","MAPPING1U":"1865","MAPPING1F":"1865","MAPPING1N":"1865","MAPPING1H":"1865","MAPPING2":"1866","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFL-*****","DESCRIPTION":"Civilian Small/Light Flatbed Trailer","MAPPING1U":"1867","MAPPING1F":"1867","MAPPING1N":"1867","MAPPING1H":"1867","MAPPING2":"1868","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFM-*****","DESCRIPTION":"Civilian Medium Flatbed Trailer","MAPPING1U":"1869","MAPPING1F":"1869","MAPPING1N":"1869","MAPPING1H":"1869","MAPPING2":"1870","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFH-*****","DESCRIPTION":"Civilian Large/Heavy Flatbed Trailer","MAPPING1U":"1871","MAPPING1F":"1871","MAPPING1N":"1871","MAPPING1H":"1871","MAPPING2":"1872","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVS---*****","DESCRIPTION":"Missile Support","MAPPING1U":"1874","MAPPING1F":"1874","MAPPING1N":"1874","MAPPING1H":"1874"},{"SYMBOLID":"S*G*EVST--*****","DESCRIPTION":"Transloader","MAPPING1U":"1875","MAPPING1F":"1875","MAPPING1N":"1875","MAPPING1H":"1875"},{"SYMBOLID":"S*G*EVSR--*****","DESCRIPTION":"Transporter"},{"SYMBOLID":"S*G*EVSC--*****","DESCRIPTION":"Crane/Loading Device","MAPPING1U":"1877","MAPPING1F":"1877","MAPPING1N":"1877","MAPPING1H":"1877"},{"SYMBOLID":"S*G*EVSP--*****","DESCRIPTION":"Propellant Transporter","MAPPING1U":"1878","MAPPING1F":"1878","MAPPING1N":"1878","MAPPING1H":"1878"},{"SYMBOLID":"S*G*EVSW--*****","DESCRIPTION":"Warhead Transporter","MAPPING1U":"1879","MAPPING1F":"1879","MAPPING1N":"1879","MAPPING1H":"1879"},{"SYMBOLID":"S*G*EVM---*****","DESCRIPTION":"Pack Animal (S)","MAPPING1U":"1873","MAPPING1F":"1873","MAPPING1N":"1873","MAPPING1H":"1873"},{"SYMBOLID":"S*G*ES----*****","DESCRIPTION":"Equipment Sensor","MAPPING1U":"1880","MAPPING1F":"1880","MAPPING1N":"1880","MAPPING1H":"1880"},{"SYMBOLID":"S*G*ESR---*****","DESCRIPTION":"Sensor Radar","MAPPING1U":"1881","MAPPING1F":"1881","MAPPING1N":"1881","MAPPING1H":"1881"},{"SYMBOLID":"S*G*ESE---*****","DESCRIPTION":"Emplaced Sensor","MAPPING1U":"1882","MAPPING1F":"1882","MAPPING1N":"1882","MAPPING1H":"1882"},{"SYMBOLID":"S*G*EX----*****","DESCRIPTION":"Special"},{"SYMBOLID":"S*G*EXL---*****","DESCRIPTION":"Laser","MAPPING1U":"1884","MAPPING1F":"1884","MAPPING1N":"1884","MAPPING1H":"1884"},{"SYMBOLID":"S*G*EXN---*****","DESCRIPTION":"NBC Equipment","MAPPING1U":"1885","MAPPING1F":"1885","MAPPING1N":"1885","MAPPING1H":"1885"},{"SYMBOLID":"S*G*EXF---*****","DESCRIPTION":"Flame Thrower","MAPPING1U":"1886","MAPPING1F":"1886","MAPPING1N":"1886","MAPPING1H":"1886"},{"SYMBOLID":"S*G*EXM---*****","DESCRIPTION":"Land Mines","MAPPING1U":"1887","MAPPING1F":"1887","MAPPING1N":"1887","MAPPING1H":"1887"},{"SYMBOLID":"S*G*EXMC--*****","DESCRIPTION":"Claymore","MAPPING1U":"1888","MAPPING1F":"1888","MAPPING1N":"1888","MAPPING1H":"1888"},{"SYMBOLID":"S*G*EXML--*****","DESCRIPTION":"Less Than Lethal","MAPPING1U":"1889","MAPPING1F":"1889","MAPPING1N":"1889","MAPPING1H":"1889"},{"SYMBOLID":"S*G*EXI---*****","DESCRIPTION":"Improvised Explosive Device (IED)","MAPPING1U":"1883","MAPPING1F":"1883","MAPPING1N":"1883","MAPPING1H":"1883"},{"SYMBOLID":"IH8CK6F75V69VCF","DESCRIPTION":"BLANK"},{"SYMBOLID":"S*G*EXI---MO***","DESCRIPTION":"Vehicle Borne Improvised Explosive Device"},{"SYMBOLID":"S*G*I-----*****","DESCRIPTION":"Installation"},{"SYMBOLID":"S*G*IR----*****","DESCRIPTION":"Raw Material Production/Storage","MAPPING1U":"1897","MAPPING1F":"1897","MAPPING1N":"1897","MAPPING1H":"1897"},{"SYMBOLID":"S*G*IRM---*****","DESCRIPTION":"Raw Material Production/Storage Mine","MAPPING1U":"1898","MAPPING1F":"1898","MAPPING1N":"1898","MAPPING1H":"1898"},{"SYMBOLID":"S*G*IRP---*****","DESCRIPTION":"Petroleum/Gas/Oil","MAPPING1U":"1899","MAPPING1F":"1899","MAPPING1N":"1899","MAPPING1H":"1899"},{"SYMBOLID":"S*G*IRN---*****","DESCRIPTION":"NBC","MAPPING1U":"1900","MAPPING1F":"1900","MAPPING1N":"1900","MAPPING1H":"1900"},{"SYMBOLID":"S*G*IRNB--*****","DESCRIPTION":"Production/Storage NBC Biological","MAPPING1U":"1901","MAPPING1F":"1901","MAPPING1N":"1901","MAPPING1H":"1901"},{"SYMBOLID":"S*G*IRNC--*****","DESCRIPTION":"Production/Storage NBC Chemical","MAPPING1U":"1902","MAPPING1F":"1902","MAPPING1N":"1902","MAPPING1H":"1902"},{"SYMBOLID":"S*G*IRNN--*****","DESCRIPTION":"Production/Storage NBC Nuclear","MAPPING1U":"1903","MAPPING1F":"1903","MAPPING1N":"1903","MAPPING1H":"1903"},{"SYMBOLID":"S*G*IP----*****","DESCRIPTION":"Processing Facility","MAPPING1U":"1904","MAPPING1F":"1904","MAPPING1N":"1904","MAPPING1H":"1904"},{"SYMBOLID":"S*G*IPD---*****","DESCRIPTION":"Processing Facility Decontamination","MAPPING1U":"1905","MAPPING1F":"1905","MAPPING1N":"1905","MAPPING1H":"1905"},{"SYMBOLID":"S*G*IE----*****","DESCRIPTION":"Equipment Manufacture","MAPPING1U":"1906","MAPPING1F":"1906","MAPPING1N":"1906","MAPPING1H":"1906"},{"SYMBOLID":"S*G*IU----*****","DESCRIPTION":"Service, Reasearch, Utility Facility","MAPPING1U":"1907","MAPPING1F":"1907","MAPPING1N":"1907","MAPPING1H":"1907"},{"SYMBOLID":"S*G*IUR---*****","DESCRIPTION":"Technological Research Facility","MAPPING1U":"1908","MAPPING1F":"1908","MAPPING1N":"1908","MAPPING1H":"1908"},{"SYMBOLID":"S*G*IUT---*****","DESCRIPTION":"Telecommunications Facility","MAPPING1U":"1909","MAPPING1F":"1909","MAPPING1N":"1909","MAPPING1H":"1909"},{"SYMBOLID":"S*G*IUE---*****","DESCRIPTION":"Electric Power Facility","MAPPING1U":"1910","MAPPING1F":"1910","MAPPING1N":"1910","MAPPING1H":"1910"},{"SYMBOLID":"S*G*IUEN--*****","DESCRIPTION":"Nuclear Plant","MAPPING1U":"1911","MAPPING1F":"1911","MAPPING1N":"1911","MAPPING1H":"1911"},{"SYMBOLID":"S*G*IUED--*****","DESCRIPTION":"Dam","MAPPING1U":"1912","MAPPING1F":"1912","MAPPING1N":"1912","MAPPING1H":"1912"},{"SYMBOLID":"S*G*IUEF--*****","DESCRIPTION":"Fossil Fuel","MAPPING1U":"1913","MAPPING1F":"1913","MAPPING1N":"1913","MAPPING1H":"1913"},{"SYMBOLID":"S*G*IUP---*****","DESCRIPTION":"Public Water Services","MAPPING1U":"1914","MAPPING1F":"1914","MAPPING1N":"1914","MAPPING1H":"1914"},{"SYMBOLID":"S*G*IM----*****","DESCRIPTION":"Military Materiel Facility"},{"SYMBOLID":"S*G*IMF---*****","DESCRIPTION":"Nuclear Energy","MAPPING1U":"1915","MAPPING1F":"1915","MAPPING1N":"1915","MAPPING1H":"1915"},{"SYMBOLID":"S*G*IMFA--*****","DESCRIPTION":"Atomic Energy Reactor","MAPPING1U":"1916","MAPPING1F":"1916","MAPPING1N":"1916","MAPPING1H":"1916"},{"SYMBOLID":"S*G*IMFP--*****","DESCRIPTION":"Nuclear Material Production","MAPPING1U":"1917","MAPPING1F":"1917","MAPPING1N":"1917","MAPPING1H":"1917"},{"SYMBOLID":"S*G*IMFPW-*****","DESCRIPTION":"Weapons Grade","MAPPING1U":"1918","MAPPING1F":"1918","MAPPING1N":"1918","MAPPING1H":"1918"},{"SYMBOLID":"S*G*IMFS--*****","DESCRIPTION":"Nuclear Material Storage","MAPPING1U":"1919","MAPPING1F":"1919","MAPPING1N":"1919","MAPPING1H":"1919"},{"SYMBOLID":"S*G*IMA---*****","DESCRIPTION":"Aircraft Production & Assembly","MAPPING1U":"1920","MAPPING1F":"1920","MAPPING1N":"1920","MAPPING1H":"1920"},{"SYMBOLID":"S*G*IME---*****","DESCRIPTION":"Ammunition And Explosives Production","MAPPING1U":"1921","MAPPING1F":"1921","MAPPING1N":"1921","MAPPING1H":"1921"},{"SYMBOLID":"S*G*IMG---*****","DESCRIPTION":"Armament Production","MAPPING1U":"1922","MAPPING1F":"1922","MAPPING1N":"1922","MAPPING1H":"1922"},{"SYMBOLID":"S*G*IMV---*****","DESCRIPTION":"Military Vehicle Production","MAPPING1U":"1923","MAPPING1F":"1923","MAPPING1N":"1923","MAPPING1H":"1923"},{"SYMBOLID":"S*G*IMN---*****","DESCRIPTION":"Engineering Equipment Production","MAPPING1U":"1924","MAPPING1F":"1924","MAPPING1N":"1924","MAPPING1H":"1924"},{"SYMBOLID":"S*G*IMNB--*****","DESCRIPTION":"Engineering Equipment Production Bridge","MAPPING1U":"1925","MAPPING1F":"1925","MAPPING1N":"1925","MAPPING1H":"1925"},{"SYMBOLID":"S*G*IMC---*****","DESCRIPTION":"Chemical & Biological Warfare Production","MAPPING1U":"1926","MAPPING1F":"1926","MAPPING1N":"1926","MAPPING1H":"1926"},{"SYMBOLID":"S*G*IMS---*****","DESCRIPTION":"Ship Construction","MAPPING1U":"1927","MAPPING1F":"1927","MAPPING1N":"1927","MAPPING1H":"1927"},{"SYMBOLID":"S*G*IMM---*****","DESCRIPTION":"Missile & Space System Production","MAPPING1U":"1928","MAPPING1F":"1928","MAPPING1N":"1928","MAPPING1H":"1928"},{"SYMBOLID":"S*G*IG----*****","DESCRIPTION":"Government Leadership","MAPPING1U":"1929","MAPPING1F":"1929","MAPPING1N":"1929","MAPPING1H":"1929"},{"SYMBOLID":"S*G*IB----*****","DESCRIPTION":"Military Base/Facility","MAPPING1U":"1930","MAPPING1F":"1930","MAPPING1N":"1930","MAPPING1H":"1930"},{"SYMBOLID":"S*G*IBA---*****","DESCRIPTION":"Airport/Airbase","MAPPING1U":"1931","MAPPING1F":"1931","MAPPING1N":"1931","MAPPING1H":"1931"},{"SYMBOLID":"S*G*IBN---*****","DESCRIPTION":"Seaport/Naval Base","MAPPING1U":"1932","MAPPING1F":"1932","MAPPING1N":"1932","MAPPING1H":"1932"},{"SYMBOLID":"S*G*IT----*****","DESCRIPTION":"Transport Facility","MAPPING1U":"1933","MAPPING1F":"1933","MAPPING1N":"1933","MAPPING1H":"1933"},{"SYMBOLID":"S*G*IX----*****","DESCRIPTION":"Medical Facility","MAPPING1U":"660","MAPPING1F":"661","MAPPING1N":"662","MAPPING1H":"663"},{"SYMBOLID":"S*G*IXH---*****","DESCRIPTION":"Hospital","MAPPING1U":"660","MAPPING1F":"661","MAPPING1N":"662","MAPPING1H":"663","MAPPING2":"1935","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*IC----*****","DESCRIPTION":"Tented Camp","MAPPING1U":"1891","MAPPING1F":"1891","MAPPING1N":"1891","MAPPING1H":"1891"},{"SYMBOLID":"S*G*ICD---*****","DESCRIPTION":"Tented Camp, Displaced Persons/Refugees","MAPPING1U":"1892","MAPPING1F":"1892","MAPPING1N":"1892","MAPPING1H":"1892"},{"SYMBOLID":"S*G*ICT---*****","DESCRIPTION":"Tented Training Camp","MAPPING1U":"1893","MAPPING1F":"1893","MAPPING1N":"1893","MAPPING1H":"1893"},{"SYMBOLID":"S*G*IW----*****","DESCRIPTION":"Warehouse/Storage Facility","MAPPING1U":"1895","MAPPING1F":"1895","MAPPING1N":"1895","MAPPING1H":"1895"},{"SYMBOLID":"S*S*------*****","DESCRIPTION":"Sea Surface Track"},{"SYMBOLID":"S*S*C-----*****","DESCRIPTION":"Sea Surface Track Combatant","MAPPING1U":"1936","MAPPING1F":"1936","MAPPING1N":"1936","MAPPING1H":"1936","MAPPING2":"1937","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*CL----*****","DESCRIPTION":"Line","MAPPING1U":"1938","MAPPING1F":"1938","MAPPING1N":"1938","MAPPING1H":"1938"},{"SYMBOLID":"S*S*CLCV--*****","DESCRIPTION":"Carrier","MAPPING1U":"1939","MAPPING1F":"1939","MAPPING1N":"1939","MAPPING1H":"1939"},{"SYMBOLID":"S*S*CLBB--*****","DESCRIPTION":"Battleship","MAPPING1U":"1940","MAPPING1F":"1940","MAPPING1N":"1940","MAPPING1H":"1940"},{"SYMBOLID":"S*S*CLCC--*****","DESCRIPTION":"Cruiser","MAPPING1U":"1941","MAPPING1F":"1941","MAPPING1N":"1941","MAPPING1H":"1941"},{"SYMBOLID":"S*S*CLDD--*****","DESCRIPTION":"Destroyer","MAPPING1U":"1942","MAPPING1F":"1942","MAPPING1N":"1942","MAPPING1H":"1942"},{"SYMBOLID":"S*S*CLFF--*****","DESCRIPTION":"Frigate/Corvette","MAPPING1U":"1943","MAPPING1F":"1943","MAPPING1N":"1943","MAPPING1H":"1943"},{"SYMBOLID":"S*S*CLLL--*****","DESCRIPTION":"Littoral Combatant","MAPPING1U":"1944","MAPPING1F":"1944","MAPPING1N":"1944","MAPPING1H":"1944"},{"SYMBOLID":"S*S*CLLLAS*****","DESCRIPTION":"Antisubmarine Warfare Mission Package","MAPPING1U":"1945","MAPPING1F":"1945","MAPPING1N":"1945","MAPPING1H":"1945"},{"SYMBOLID":"S*S*CLLLMI*****","DESCRIPTION":"Mine Warfare Mission Package","MAPPING1U":"1946","MAPPING1F":"1946","MAPPING1N":"1946","MAPPING1H":"1946"},{"SYMBOLID":"S*S*CLLLSU*****","DESCRIPTION":"Surface Warfare (SUW) Mission Package","MAPPING1U":"1947","MAPPING1F":"1947","MAPPING1N":"1947","MAPPING1H":"1947"},{"SYMBOLID":"S*S*CA----*****","DESCRIPTION":"Amphibious Warfare Ship","MAPPING1U":"1948","MAPPING1F":"1948","MAPPING1N":"1948","MAPPING1H":"1948"},{"SYMBOLID":"S*S*CALA--*****","DESCRIPTION":"Assault Vessel","MAPPING1U":"1949","MAPPING1F":"1949","MAPPING1N":"1949","MAPPING1H":"1949"},{"SYMBOLID":"S*S*CALS--*****","DESCRIPTION":"Landing Ship","MAPPING1U":"1950","MAPPING1F":"1950","MAPPING1N":"1950","MAPPING1H":"1950"},{"SYMBOLID":"S*S*CALSM-*****","DESCRIPTION":"Landing Ship Medium","MAPPING1U":"1951","MAPPING1F":"1951","MAPPING1N":"1951","MAPPING1H":"1951"},{"SYMBOLID":"S*S*CALST-*****","DESCRIPTION":"Landing Ship Tank","MAPPING1U":"1952","MAPPING1F":"1952","MAPPING1N":"1952","MAPPING1H":"1952"},{"SYMBOLID":"S*S*CALC--*****","DESCRIPTION":"Landing Craft","MAPPING1U":"1953","MAPPING1F":"1953","MAPPING1N":"1953","MAPPING1H":"1953"},{"SYMBOLID":"S*S*CM----*****","DESCRIPTION":"Mine Warfare Vessel","MAPPING1U":"1954","MAPPING1F":"1954","MAPPING1N":"1954","MAPPING1H":"1954"},{"SYMBOLID":"S*S*CMML--*****","DESCRIPTION":"Minelayer","MAPPING1U":"1955","MAPPING1F":"1955","MAPPING1N":"1955","MAPPING1H":"1955"},{"SYMBOLID":"S*S*CMMS--*****","DESCRIPTION":"Minesweeper","MAPPING1U":"1956","MAPPING1F":"1956","MAPPING1N":"1956","MAPPING1H":"1956"},{"SYMBOLID":"S*S*CMMH--*****","DESCRIPTION":"Minehunter","MAPPING1U":"1957","MAPPING1F":"1957","MAPPING1N":"1957","MAPPING1H":"1957"},{"SYMBOLID":"S*S*CMMA--*****","DESCRIPTION":"MCM Support","MAPPING1U":"1958","MAPPING1F":"1958","MAPPING1N":"1958","MAPPING1H":"1958"},{"SYMBOLID":"S*S*CP----*****","DESCRIPTION":"Sea Surface Combatant Patrol","MAPPING1U":"1959","MAPPING1F":"1959","MAPPING1N":"1959","MAPPING1H":"1959"},{"SYMBOLID":"S*S*CPSB--*****","DESCRIPTION":"Antisubmarine Warfare","MAPPING1U":"1960","MAPPING1F":"1960","MAPPING1N":"1960","MAPPING1H":"1960"},{"SYMBOLID":"S*S*CPSU--*****","DESCRIPTION":"Antisurface Warfare","MAPPING1U":"1961","MAPPING1F":"1961","MAPPING1N":"1961","MAPPING1H":"1961"},{"SYMBOLID":"S*S*CPSUM-*****","DESCRIPTION":"Anti-Ship Missile","MAPPING1U":"1962","MAPPING1F":"1962","MAPPING1N":"1962","MAPPING1H":"1962"},{"SYMBOLID":"S*S*CPSUT-*****","DESCRIPTION":"Torpedo(Antisurface Warfare)","MAPPING1U":"1963","MAPPING1F":"1963","MAPPING1N":"1963","MAPPING1H":"1963"},{"SYMBOLID":"S*S*CPSUG-*****","DESCRIPTION":"Antisurface Warfare Gun","MAPPING1U":"1964","MAPPING1F":"1964","MAPPING1N":"1964","MAPPING1H":"1964"},{"SYMBOLID":"S*S*CH----*****","DESCRIPTION":"Combatant Hovercraft","MAPPING1U":"1965","MAPPING1F":"1965","MAPPING1N":"1965","MAPPING1H":"1965"},{"SYMBOLID":"S*S*S-----*****","DESCRIPTION":"Sea Surface Station","MAPPING1U":"1966","MAPPING1F":"1966","MAPPING1N":"1966","MAPPING1H":"1966"},{"SYMBOLID":"S*S*SP----*****","DESCRIPTION":"Picket","MAPPING1U":"1967","MAPPING1F":"1967","MAPPING1N":"1967","MAPPING1H":"1967"},{"SYMBOLID":"S*S*SA----*****","DESCRIPTION":"ASW Ship","MAPPING1U":"1968","MAPPING1F":"1968","MAPPING1N":"1968","MAPPING1H":"1968"},{"SYMBOLID":"S*S*G-----*****","DESCRIPTION":"Navy Group","MAPPING1U":"1969","MAPPING1F":"1969","MAPPING1N":"1969","MAPPING1H":"1969"},{"SYMBOLID":"S*S*GT----*****","DESCRIPTION":"Navy Task Force","MAPPING1U":"1970","MAPPING1F":"1970","MAPPING1N":"1970","MAPPING1H":"1970"},{"SYMBOLID":"S*S*GG----*****","DESCRIPTION":"Navy Task Group","MAPPING1U":"1971","MAPPING1F":"1971","MAPPING1N":"1971","MAPPING1H":"1971"},{"SYMBOLID":"S*S*GU----*****","DESCRIPTION":"Navy Task Unit","MAPPING1U":"1972","MAPPING1F":"1972","MAPPING1N":"1972","MAPPING1H":"1972"},{"SYMBOLID":"S*S*GC----*****","DESCRIPTION":"Convoy","MAPPING1U":"1973","MAPPING1F":"1973","MAPPING1N":"1973","MAPPING1H":"1973"},{"SYMBOLID":"S*S*CD----*****","DESCRIPTION":"Surface Decoy","MAPPING1U":"1974","MAPPING1F":"1974","MAPPING1N":"1974","MAPPING1H":"1974"},{"SYMBOLID":"S*S*CU----*****","DESCRIPTION":"Unmanned Surface Vehicle (USV)","MAPPING1U":"1975","MAPPING1F":"1975","MAPPING1N":"1975","MAPPING1H":"1975"},{"SYMBOLID":"S*S*CUM---*****","DESCRIPTION":"USV Mine Countermeasures","MAPPING1U":"1976","MAPPING1F":"1976","MAPPING1N":"1976","MAPPING1H":"1976"},{"SYMBOLID":"S*S*CUS---*****","DESCRIPTION":"USV Antisubmarine Warfare","MAPPING1U":"1977","MAPPING1F":"1977","MAPPING1N":"1977","MAPPING1H":"1977"},{"SYMBOLID":"S*S*CUN---*****","DESCRIPTION":"USV Antisurface Warfare","MAPPING1U":"1978","MAPPING1F":"1978","MAPPING1N":"1978","MAPPING1H":"1978"},{"SYMBOLID":"S*S*CUR---*****","DESCRIPTION":"USV Remote Multimission Vehicle","MAPPING1U":"1979","MAPPING1F":"1979","MAPPING1N":"1979","MAPPING1H":"1979"},{"SYMBOLID":"S*S*N-----*****","DESCRIPTION":"Noncombatant","MAPPING1U":"1980","MAPPING1F":"1980","MAPPING1N":"1980","MAPPING1H":"1980"},{"SYMBOLID":"S*S*NR----*****","DESCRIPTION":"Underway Replenishment","MAPPING1U":"1981","MAPPING1F":"1981","MAPPING1N":"1981","MAPPING1H":"1981"},{"SYMBOLID":"S*S*NF----*****","DESCRIPTION":"Fleet Support","MAPPING1U":"1982","MAPPING1F":"1982","MAPPING1N":"1982","MAPPING1H":"1982"},{"SYMBOLID":"S*S*NI----*****","DESCRIPTION":"Intelligence","MAPPING1U":"1983","MAPPING1F":"1983","MAPPING1N":"1983","MAPPING1H":"1983"},{"SYMBOLID":"S*S*NS----*****","DESCRIPTION":"Service & Support Harbor","MAPPING1U":"1984","MAPPING1F":"1984","MAPPING1N":"1984","MAPPING1H":"1984"},{"SYMBOLID":"S*S*NM----*****","DESCRIPTION":"Hospital Ship","MAPPING1U":"1985","MAPPING1F":"1985","MAPPING1N":"1985","MAPPING1H":"1985"},{"SYMBOLID":"S*S*NH----*****","DESCRIPTION":"Noncombatant Hovercraft","MAPPING1U":"1986","MAPPING1F":"1986","MAPPING1N":"1986","MAPPING1H":"1986","MAPPING2":"1987","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*NN----*****","DESCRIPTION":"Noncombatant Station","MAPPING1U":"1988","MAPPING1F":"1988","MAPPING1N":"1988","MAPPING1H":"1988"},{"SYMBOLID":"S*S*NNR---*****","DESCRIPTION":"Rescue","MAPPING1U":"1989","MAPPING1F":"1989","MAPPING1N":"1989","MAPPING1H":"1989"},{"SYMBOLID":"S*S*X-----*****","DESCRIPTION":"Non-Military"},{"SYMBOLID":"S*S*XM----*****","DESCRIPTION":"Merchant","MAPPING1U":"1990","MAPPING1F":"1990","MAPPING1N":"1990","MAPPING1H":"1990","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMC---*****","DESCRIPTION":"Subsurface Non-military Cargo","MAPPING1U":"1992","MAPPING1F":"1992","MAPPING1N":"1992","MAPPING1H":"1992","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMR---*****","DESCRIPTION":"Roll On/Roll Off","MAPPING1U":"1993","MAPPING1F":"1993","MAPPING1N":"1993","MAPPING1H":"1993","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMO---*****","DESCRIPTION":"Oiler/Tanker","MAPPING1U":"1994","MAPPING1F":"1994","MAPPING1N":"1994","MAPPING1H":"1994","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMTU--*****","DESCRIPTION":"Tug","MAPPING1U":"1995","MAPPING1F":"1995","MAPPING1N":"1995","MAPPING1H":"1995","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMF---*****","DESCRIPTION":"Ferry","MAPPING1U":"1996","MAPPING1F":"1996","MAPPING1N":"1996","MAPPING1H":"1996","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMP---*****","DESCRIPTION":"Passenger","MAPPING1U":"1997","MAPPING1F":"1997","MAPPING1N":"1997","MAPPING1H":"1997","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMH---*****","DESCRIPTION":"Hazardous Materials (HAZMAT)","MAPPING1U":"1998","MAPPING1F":"1998","MAPPING1N":"1998","MAPPING1H":"1998","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMTO--*****","DESCRIPTION":"Towing Vessel","MAPPING1U":"1999","MAPPING1F":"1999","MAPPING1N":"1999","MAPPING1H":"1999","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XF----*****","DESCRIPTION":"Fishing","MAPPING1U":"2000","MAPPING1F":"2000","MAPPING1N":"2000","MAPPING1H":"2000","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFDF--*****","DESCRIPTION":"Drifter","MAPPING1U":"2002","MAPPING1F":"2002","MAPPING1N":"2002","MAPPING1H":"2002","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFDR--*****","DESCRIPTION":"Dredge","MAPPING1U":"2003","MAPPING1F":"2003","MAPPING1N":"2003","MAPPING1H":"2003","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFTR--*****","DESCRIPTION":"Trawler","MAPPING1U":"2004","MAPPING1F":"2004","MAPPING1N":"2004","MAPPING1H":"2004","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XR----*****","DESCRIPTION":"Leisure Craft","MAPPING1U":"2005","MAPPING1F":"2005","MAPPING1N":"2005","MAPPING1H":"2005","MAPPING2":"2006","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XL----*****","DESCRIPTION":"Law Enforcement Vessel","MAPPING1U":"2007","MAPPING1F":"2007","MAPPING1N":"2007","MAPPING1H":"2007","MAPPING2":"2008","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XH----*****","DESCRIPTION":"Non-military Hovercraft","MAPPING1U":"2009","MAPPING1F":"2009","MAPPING1N":"2009","MAPPING1H":"2009","MAPPING2":"2010","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*O-----*****","DESCRIPTION":"Own Track"},{"SYMBOLID":"S*U*------*****","DESCRIPTION":"Subsurface Track"},{"SYMBOLID":"S*U*S-----*****","DESCRIPTION":"Submarine","MAPPING1U":"2017","MAPPING1F":"2017","MAPPING1N":"2017","MAPPING1H":"2017"},{"SYMBOLID":"S*U*SN----*****","DESCRIPTION":"Nuclear Propulsion","MAPPING1U":"2022","MAPPING1F":"2022","MAPPING1N":"2022","MAPPING1H":"2022"},{"SYMBOLID":"S*U*SNF---*****","DESCRIPTION":"Submarine Nuclear Surfaced","MAPPING1U":"2023","MAPPING1F":"2023","MAPPING1N":"2023","MAPPING1H":"2023"},{"SYMBOLID":"S*U*SNA---*****","DESCRIPTION":"Submarine Nuclear Attack (SSN)","MAPPING1U":"2024","MAPPING1F":"2024","MAPPING1N":"2024","MAPPING1H":"2024","MAPPING2":"2025","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNM---*****","DESCRIPTION":"Submarine Nuclear Missile Type Unknown","MAPPING1U":"2026","MAPPING1F":"2026","MAPPING1N":"2026","MAPPING1H":"2026","MAPPING2":"2027","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNG---*****","DESCRIPTION":"Submarine Nuclear Guided Missile (SSGN)","MAPPING1U":"2028","MAPPING1F":"2028","MAPPING1N":"2028","MAPPING1H":"2028","MAPPING2":"2029","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNB---*****","DESCRIPTION":"Ballistic Missile Submarine (SSB)","MAPPING1U":"2030","MAPPING1F":"2030","MAPPING1N":"2030","MAPPING1H":"2030","MAPPING2":"2031","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SC----*****","DESCRIPTION":"Conventional Propulsion","MAPPING1U":"2032","MAPPING1F":"2032","MAPPING1N":"2032","MAPPING1H":"2032"},{"SYMBOLID":"S*U*SCF---*****","DESCRIPTION":"Conventional Propulsion Surfaced","MAPPING1U":"2033","MAPPING1F":"2033","MAPPING1N":"2033","MAPPING1H":"2033"},{"SYMBOLID":"S*U*SCA---*****","DESCRIPTION":"Attack Submarine (SS)","MAPPING1U":"2034","MAPPING1F":"2034","MAPPING1N":"2034","MAPPING1H":"2034","MAPPING2":"2035","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCM---*****","DESCRIPTION":"Conventional Propulsion Missile Submarine (TYPE UNKNOWN)","MAPPING1U":"2036","MAPPING1F":"2036","MAPPING1N":"2036","MAPPING1H":"2036","MAPPING2":"2037","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCG---*****","DESCRIPTION":"Guided Missile Submarine (SSG)","MAPPING1U":"2038","MAPPING1F":"2038","MAPPING1N":"2038","MAPPING1H":"2038","MAPPING2":"2039","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCB---*****","DESCRIPTION":"Conventional Propulsion Ballistic Missile (SSB)","MAPPING1U":"2040","MAPPING1F":"2040","MAPPING1N":"2040","MAPPING1H":"2040","MAPPING2":"2041","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SO----*****","DESCRIPTION":"Other Submersible","MAPPING1U":"2042","MAPPING1F":"2042","MAPPING1N":"2042","MAPPING1H":"2042"},{"SYMBOLID":"S*U*SOF---*****","DESCRIPTION":"Other Submersible Surfaced","MAPPING1U":"2043","MAPPING1F":"2043","MAPPING1N":"2043","MAPPING1H":"2043"},{"SYMBOLID":"S*U*SU----*****","DESCRIPTION":"Unmanned Underwater Vehicle (UUV)","MAPPING1U":"2046","MAPPING1F":"2046","MAPPING1N":"2046","MAPPING1H":"2046"},{"SYMBOLID":"S*U*SUM---*****","DESCRIPTION":"UUV Mine Warfare","MAPPING1U":"2047","MAPPING1F":"2047","MAPPING1N":"2047","MAPPING1H":"2047"},{"SYMBOLID":"S*U*SUS---*****","DESCRIPTION":"UUV Antisubmarine Warfare","MAPPING1U":"2048","MAPPING1F":"2048","MAPPING1N":"2048","MAPPING1H":"2048"},{"SYMBOLID":"S*U*SUN---*****","DESCRIPTION":"UUV Antisurface Warfare","MAPPING1U":"2049","MAPPING1F":"2049","MAPPING1N":"2049","MAPPING1H":"2049"},{"SYMBOLID":"S*U*SS----*****","DESCRIPTION":"Submarine Station","MAPPING1U":"2044","MAPPING1F":"2044","MAPPING1N":"2044","MAPPING1H":"2044"},{"SYMBOLID":"S*U*SSA---*****","DESCRIPTION":"ASW Submarine","MAPPING1U":"2045","MAPPING1F":"2045","MAPPING1N":"2045","MAPPING1H":"2045"},{"SYMBOLID":"S*U*SF----*****","DESCRIPTION":"Submarine Station Surfaced","MAPPING1U":"2018","MAPPING1F":"2018","MAPPING1N":"2018","MAPPING1H":"2018"},{"SYMBOLID":"S*U*W-----*****","DESCRIPTION":"Underwater Weapon","MAPPING1U":"2056","MAPPING1F":"2056","MAPPING1N":"2056","MAPPING1H":"2056"},{"SYMBOLID":"S*U*WT----*****","DESCRIPTION":"Torpedo","MAPPING1U":"2057","MAPPING1F":"2057","MAPPING1N":"2057","MAPPING1H":"2057"},{"SYMBOLID":"S*U*WM----*****","DESCRIPTION":"Sea Mine","MAPPING1U":"2058","MAPPING1F":"2058","MAPPING1N":"2058","MAPPING1H":"2058"},{"SYMBOLID":"S*U*WMD---*****","DESCRIPTION":"Sea Mine Dealt","MAPPING1U":"2060","MAPPING1F":"2060","MAPPING1N":"2060","MAPPING1H":"2060"},{"SYMBOLID":"S*U*WMG---*****","DESCRIPTION":"Sea Mine (Ground)","MAPPING1U":"2061","MAPPING1F":"2061","MAPPING1N":"2061","MAPPING1H":"2061"},{"SYMBOLID":"S*U*WMGD--*****","DESCRIPTION":"Sea Mine (Ground) Dealt","MAPPING1U":"2063","MAPPING1F":"2063","MAPPING1N":"2063","MAPPING1H":"2063"},{"SYMBOLID":"S*U*WMM---*****","DESCRIPTION":"Sea Mine (Moored)","MAPPING1U":"2072","MAPPING1F":"2072","MAPPING1N":"2072","MAPPING1H":"2072"},{"SYMBOLID":"S*U*WMMD--*****","DESCRIPTION":"Sea Mine (Moored) Dealt","MAPPING1U":"2074","MAPPING1F":"2074","MAPPING1N":"2074","MAPPING1H":"2074"},{"SYMBOLID":"S*U*WMF---*****","DESCRIPTION":"Sea Mine (Floating)","MAPPING1U":"2083","MAPPING1F":"2083","MAPPING1N":"2083","MAPPING1H":"2083"},{"SYMBOLID":"S*U*WMFD--*****","DESCRIPTION":"Sea Mine (Floating) Dealt","MAPPING1U":"2085","MAPPING1F":"2085","MAPPING1N":"2085","MAPPING1H":"2085"},{"SYMBOLID":"S*U*WMO---*****","DESCRIPTION":"Sea Mine (Other Position)","MAPPING1U":"2093","MAPPING1F":"2093","MAPPING1N":"2093","MAPPING1H":"2093"},{"SYMBOLID":"S*U*WMOD--*****","DESCRIPTION":"Sea Mine (Other Position) Dealt","MAPPING1U":"2095","MAPPING1F":"2095","MAPPING1N":"2095","MAPPING1H":"2095"},{"SYMBOLID":"S*U*WD----*****","DESCRIPTION":"Underwater Decoy","MAPPING1U":"2113","MAPPING1F":"2113","MAPPING1N":"2113","MAPPING1H":"2113"},{"SYMBOLID":"S*U*WDM---*****","DESCRIPTION":"Sea Mine Decoy","MAPPING1U":"2114","MAPPING1F":"2114","MAPPING1N":"2114","MAPPING1H":"2114"},{"SYMBOLID":"S*U*N-----*****","DESCRIPTION":"Non-Submarine"},{"SYMBOLID":"S*U*ND----*****","DESCRIPTION":"Diver","MAPPING1U":"2120","MAPPING1F":"2120","MAPPING1N":"2120","MAPPING1H":"2120"},{"SYMBOLID":"S*U*X-----*****","DESCRIPTION":"Unexploded Ordnance Area (Subsurface)","MAPPING2":"2126","MAPPING2COLOR":"#FF0000"},{"SYMBOLID":"S*F*------*****","DESCRIPTION":"Special Operations Forces (SOF) Unit","MAPPING1U":"2131","MAPPING1F":"2131","MAPPING1N":"2131","MAPPING1H":"2131"},{"SYMBOLID":"S*F*A-----*****","DESCRIPTION":"SOF Unit Aviation","MAPPING1U":"2132","MAPPING1F":"2132","MAPPING1N":"2132","MAPPING1H":"2132"},{"SYMBOLID":"S*F*AF----*****","DESCRIPTION":"SOF Unit Fixed Wing","MAPPING1U":"2133","MAPPING1F":"2133","MAPPING1N":"2133","MAPPING1H":"2133"},{"SYMBOLID":"S*F*AFA---*****","DESCRIPTION":"SOF Unit Fixed Wing Attack","MAPPING1U":"2134","MAPPING1F":"2134","MAPPING1N":"2134","MAPPING1H":"2134"},{"SYMBOLID":"S*F*AFK---*****","DESCRIPTION":"SOF Unit Refuel","MAPPING1U":"2135","MAPPING1F":"2135","MAPPING1N":"2135","MAPPING1H":"2135"},{"SYMBOLID":"S*F*AFU---*****","DESCRIPTION":"SOF Unit Fixed Wing Utility","MAPPING1U":"2136","MAPPING1F":"2136","MAPPING1N":"2136","MAPPING1H":"2136"},{"SYMBOLID":"S*F*AFUL--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Light)","MAPPING1U":"2137","MAPPING1F":"2137","MAPPING1N":"2137","MAPPING1H":"2137"},{"SYMBOLID":"S*F*AFUM--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Medium)","MAPPING1U":"2138","MAPPING1F":"2138","MAPPING1N":"2138","MAPPING1H":"2138"},{"SYMBOLID":"S*F*AFUH--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Heavy)","MAPPING1U":"2139","MAPPING1F":"2139","MAPPING1N":"2139","MAPPING1H":"2139"},{"SYMBOLID":"S*F*AV----*****","DESCRIPTION":"SOF Unit V/STOL","MAPPING1U":"2140","MAPPING1F":"2140","MAPPING1N":"2140","MAPPING1H":"2140"},{"SYMBOLID":"S*F*AH----*****","DESCRIPTION":"SOF Unit Rotary Wing","MAPPING1U":"2141","MAPPING1F":"2141","MAPPING1N":"2141","MAPPING1H":"2141"},{"SYMBOLID":"S*F*AHH---*****","DESCRIPTION":"SOF Unit Rotary Wing Combat Search & Rescue","MAPPING1U":"2142","MAPPING1F":"2142","MAPPING1N":"2142","MAPPING1H":"2142"},{"SYMBOLID":"S*F*AHA---*****","DESCRIPTION":"SOF Unit Rotary Wing Attack","MAPPING1U":"2143","MAPPING1F":"2143","MAPPING1N":"2143","MAPPING1H":"2143"},{"SYMBOLID":"S*F*AHU---*****","DESCRIPTION":"SOF Unit Rotary Wing Utility","MAPPING1U":"2144","MAPPING1F":"2144","MAPPING1N":"2144","MAPPING1H":"2144"},{"SYMBOLID":"S*F*AHUL--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Light)","MAPPING1U":"2145","MAPPING1F":"2145","MAPPING1N":"2145","MAPPING1H":"2145"},{"SYMBOLID":"S*F*AHUM--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Medium)","MAPPING1U":"2146","MAPPING1F":"2146","MAPPING1N":"2146","MAPPING1H":"2146"},{"SYMBOLID":"S*F*AHUH--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Heavy)","MAPPING1U":"2147","MAPPING1F":"2147","MAPPING1N":"2147","MAPPING1H":"2147"},{"SYMBOLID":"S*F*N-----*****","DESCRIPTION":"SOF Unit SOF Unit Naval","MAPPING1U":"2148","MAPPING1F":"2148","MAPPING1N":"2148","MAPPING1H":"2148"},{"SYMBOLID":"S*F*NS----*****","DESCRIPTION":"SOF Unit Seal","MAPPING1U":"2149","MAPPING1F":"2149","MAPPING1N":"2149","MAPPING1H":"2149"},{"SYMBOLID":"S*F*NU----*****","DESCRIPTION":"SOF Unit Underwater Demolition Team","MAPPING1U":"2150","MAPPING1F":"2150","MAPPING1N":"2150","MAPPING1H":"2150"},{"SYMBOLID":"S*F*NB----*****","DESCRIPTION":"SOF Unit Special Boat","MAPPING1U":"2151","MAPPING1F":"2151","MAPPING1N":"2151","MAPPING1H":"2151","MAPPING2":"2152","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*NN----*****","DESCRIPTION":"SOF Unit Special SSNR","MAPPING1U":"2153","MAPPING1F":"2153","MAPPING1N":"2153","MAPPING1H":"2153"},{"SYMBOLID":"S*F*G-----*****","DESCRIPTION":"SOF Unit Ground","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"2154","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*F*GS----*****","DESCRIPTION":"SOF Unit Special Forces","MAPPING1U":"2158","MAPPING1F":"2158","MAPPING1N":"2158","MAPPING1H":"2158"},{"SYMBOLID":"S*F*GR----*****","DESCRIPTION":"SOF Unit Ranger","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"2159","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*F*GP----*****","DESCRIPTION":"SOF Unit Psychological Operations (PSYOP)","MAPPING1U":"2161","MAPPING1F":"2161","MAPPING1N":"2161","MAPPING1H":"2161","MAPPING2":"2162","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*GPA---*****","DESCRIPTION":"SOF Unit Fixed Wing Aviation (PSYOP)","MAPPING1U":"2163","MAPPING1F":"2163","MAPPING1N":"2163","MAPPING1H":"2163","MAPPING2":"2164","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*GC----*****","DESCRIPTION":"SOF Unit Civil Affairs","MAPPING1U":"2165","MAPPING1F":"2165","MAPPING1N":"2165","MAPPING1H":"2165"},{"SYMBOLID":"S*F*B-----*****","DESCRIPTION":"SOF Unit Support","MAPPING1U":"2166","MAPPING1F":"2166","MAPPING1N":"2166","MAPPING1H":"2166"},{"SYMBOLID":"S*Z*------*****","DESCRIPTION":"Unknown Battle Dimension","MAPPING1U":"999","MAPPING1F":"999","MAPPING1N":"999","MAPPING1H":"999"},{"SYMBOLID":"I*-*------*****","DESCRIPTION":"Signals Intelligence"},{"SYMBOLID":"I*P*------*****","DESCRIPTION":"Space Track"},{"SYMBOLID":"I*P*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*P*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*P*SCD---*****","DESCRIPTION":"Satellite Down-Link","MAPPING1U":"3000","MAPPING1F":"3000","MAPPING1N":"3000","MAPPING1H":"3000"},{"SYMBOLID":"I*P*SR----*****","DESCRIPTION":"Radar(Signal Intercept)"},{"SYMBOLID":"I*P*SRD---*****","DESCRIPTION":"Data Transmission(SPACE TRACK)","MAPPING1U":"3001","MAPPING1F":"3001","MAPPING1N":"3001","MAPPING1H":"3001"},{"SYMBOLID":"I*P*SRE---*****","DESCRIPTION":"Earth Surveillance","MAPPING1U":"3002","MAPPING1F":"3002","MAPPING1N":"3002","MAPPING1H":"3002"},{"SYMBOLID":"I*P*SRI---*****","DESCRIPTION":"IFF (Transponder)(SPACE TRACK)","MAPPING1U":"3003","MAPPING1F":"3003","MAPPING1N":"3003","MAPPING1H":"3003"},{"SYMBOLID":"I*P*SRM---*****","DESCRIPTION":"Multi-function(SPACE TRACK)","MAPPING1U":"3004","MAPPING1F":"3004","MAPPING1N":"3004","MAPPING1H":"3004"},{"SYMBOLID":"I*P*SRT---*****","DESCRIPTION":"Target Acquisition(Space Track)","MAPPING1U":"3005","MAPPING1F":"3005","MAPPING1N":"3005","MAPPING1H":"3005"},{"SYMBOLID":"I*P*SRS---*****","DESCRIPTION":"Space","MAPPING1U":"3006","MAPPING1F":"3006","MAPPING1N":"3006","MAPPING1H":"3006"},{"SYMBOLID":"I*P*SRU---*****","DESCRIPTION":"Unknown(Space Track)","MAPPING1U":"3007","MAPPING1F":"3007","MAPPING1N":"3007","MAPPING1H":"3007"},{"SYMBOLID":"I*A*------*****","DESCRIPTION":"Air Track"},{"SYMBOLID":"I*A*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*A*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*A*SCC---*****","DESCRIPTION":"Cellular/Mobile(AIR TRACK)","MAPPING1U":"3008","MAPPING1F":"3008","MAPPING1N":"3008","MAPPING1H":"3008"},{"SYMBOLID":"I*A*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(AIR TRACK)","MAPPING1U":"3009","MAPPING1F":"3009","MAPPING1N":"3009","MAPPING1H":"3009"},{"SYMBOLID":"I*A*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Air Track)","MAPPING1U":"3010","MAPPING1F":"3010","MAPPING1N":"3010","MAPPING1H":"3010"},{"SYMBOLID":"I*A*SCS---*****","DESCRIPTION":"Satellite Up-Link(Air Track)","MAPPING1U":"3011","MAPPING1F":"3011","MAPPING1N":"3011","MAPPING1H":"3011"},{"SYMBOLID":"I*A*SR----*****","DESCRIPTION":"Radar"},{"SYMBOLID":"I*A*SRAI--*****","DESCRIPTION":"Airborne Intercept","MAPPING1U":"3012","MAPPING1F":"3012","MAPPING1N":"3012","MAPPING1H":"3012"},{"SYMBOLID":"I*A*SRAS--*****","DESCRIPTION":"Airborne Search and Bombing","MAPPING1U":"3013","MAPPING1F":"3013","MAPPING1N":"3013","MAPPING1H":"3013"},{"SYMBOLID":"I*A*SRC---*****","DESCRIPTION":"Controlled Intercept(AIR TRACK)","MAPPING1U":"3014","MAPPING1F":"3014","MAPPING1N":"3014","MAPPING1H":"3014"},{"SYMBOLID":"I*A*SRD---*****","DESCRIPTION":"Data Transmission(AIR TRACK)","MAPPING1U":"3015","MAPPING1F":"3015","MAPPING1N":"3015","MAPPING1H":"3015"},{"SYMBOLID":"I*A*SRE---*****","DESCRIPTION":"Early Warning(AIR TRACK)","MAPPING1U":"3016","MAPPING1F":"3016","MAPPING1N":"3016","MAPPING1H":"3016"},{"SYMBOLID":"I*A*SRF---*****","DESCRIPTION":"Fire Control(AIR TRACK)","MAPPING1U":"3017","MAPPING1F":"3017","MAPPING1N":"3017","MAPPING1H":"3017"},{"SYMBOLID":"I*A*SRI---*****","DESCRIPTION":"IFF (Transponder)(AIR TRACK)","MAPPING1U":"3018","MAPPING1F":"3018","MAPPING1N":"3018","MAPPING1H":"3018"},{"SYMBOLID":"I*A*SRMA--*****","DESCRIPTION":"Missile Acquisition(AIR TRACK)","MAPPING1U":"3019","MAPPING1F":"3019","MAPPING1N":"3019","MAPPING1H":"3019"},{"SYMBOLID":"I*A*SRMD--*****","DESCRIPTION":"Missile Downlink","MAPPING1U":"3020","MAPPING1F":"3020","MAPPING1N":"3020","MAPPING1H":"3020"},{"SYMBOLID":"I*A*SRMG--*****","DESCRIPTION":"Missile Guidance(AIR TRACK)","MAPPING1U":"3021","MAPPING1F":"3021","MAPPING1N":"3021","MAPPING1H":"3021"},{"SYMBOLID":"I*A*SRMT--*****","DESCRIPTION":"Missile Tracking(AIR TRACK)","MAPPING1U":"3022","MAPPING1F":"3022","MAPPING1N":"3022","MAPPING1H":"3022"},{"SYMBOLID":"I*A*SRMF--*****","DESCRIPTION":"Multi-Function(AIR TRACK)","MAPPING1U":"3023","MAPPING1F":"3023","MAPPING1N":"3023","MAPPING1H":"3023"},{"SYMBOLID":"I*A*SRTI--*****","DESCRIPTION":"Target Illuminator(Air Track)","MAPPING1U":"3024","MAPPING1F":"3024","MAPPING1N":"3024","MAPPING1H":"3024"},{"SYMBOLID":"I*A*SRTA--*****","DESCRIPTION":"Target Acquisition(Air Track)","MAPPING1U":"3025","MAPPING1F":"3025","MAPPING1N":"3025","MAPPING1H":"3025"},{"SYMBOLID":"I*A*SRTT--*****","DESCRIPTION":"Target Tracking(Air Track)","MAPPING1U":"3026","MAPPING1F":"3026","MAPPING1N":"3026","MAPPING1H":"3026"},{"SYMBOLID":"I*A*SRU---*****","DESCRIPTION":"Unknown(Air Track)","MAPPING1U":"3027","MAPPING1F":"3027","MAPPING1N":"3027","MAPPING1H":"3027"},{"SYMBOLID":"I*G*------*****","DESCRIPTION":"Ground Track"},{"SYMBOLID":"I*G*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*G*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*G*SCC---*****","DESCRIPTION":"Cellular/Mobile(GROUND TRACK)","MAPPING1U":"3028","MAPPING1F":"3028","MAPPING1N":"3028","MAPPING1H":"3028"},{"SYMBOLID":"I*G*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(GROUND TRACK)","MAPPING1U":"3029","MAPPING1F":"3029","MAPPING1N":"3029","MAPPING1H":"3029"},{"SYMBOLID":"I*G*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Ground Track)","MAPPING1U":"3030","MAPPING1F":"3030","MAPPING1N":"3030","MAPPING1H":"3030"},{"SYMBOLID":"I*G*SCS---*****","DESCRIPTION":"Satellite Up-Link(Ground Track)","MAPPING1U":"3031","MAPPING1F":"3031","MAPPING1N":"3031","MAPPING1H":"3031"},{"SYMBOLID":"I*G*SCT---*****","DESCRIPTION":"Tropospheric Scatter","MAPPING1U":"3032","MAPPING1F":"3032","MAPPING1N":"3032","MAPPING1H":"3032"},{"SYMBOLID":"I*G*SR----*****","DESCRIPTION":"Radar(Signals Intelligence)"},{"SYMBOLID":"I*G*SRAT--*****","DESCRIPTION":"Air Traffic Control(GROUND TRACK)","MAPPING1U":"3033","MAPPING1F":"3033","MAPPING1N":"3033","MAPPING1H":"3033"},{"SYMBOLID":"I*G*SRAA--*****","DESCRIPTION":"Anti-Aircraft(GROUND TRACK)","MAPPING1U":"3034","MAPPING1F":"3034","MAPPING1N":"3034","MAPPING1H":"3034"},{"SYMBOLID":"I*G*SRB---*****","DESCRIPTION":"Battlefield Surveillance","MAPPING1U":"3035","MAPPING1F":"3035","MAPPING1N":"3035","MAPPING1H":"3035"},{"SYMBOLID":"I*G*SRCS--*****","DESCRIPTION":"Coastal Surveillance","MAPPING1U":"3036","MAPPING1F":"3036","MAPPING1N":"3036","MAPPING1H":"3036"},{"SYMBOLID":"I*G*SRCA--*****","DESCRIPTION":"Controlled Approach(GROUND TRACK)","MAPPING1U":"3037","MAPPING1F":"3037","MAPPING1N":"3037","MAPPING1H":"3037"},{"SYMBOLID":"I*G*SRD---*****","DESCRIPTION":"Data Transmission(GROUND TRACK)","MAPPING1U":"3038","MAPPING1F":"3038","MAPPING1N":"3038","MAPPING1H":"3038"},{"SYMBOLID":"I*G*SRE---*****","DESCRIPTION":"Early Warning(GROUND TRACK)","MAPPING1U":"3039","MAPPING1F":"3039","MAPPING1N":"3039","MAPPING1H":"3039"},{"SYMBOLID":"I*G*SRF---*****","DESCRIPTION":"Fire Control(GROUND TRACK)","MAPPING1U":"3040","MAPPING1F":"3040","MAPPING1N":"3040","MAPPING1H":"3040"},{"SYMBOLID":"I*G*SRH---*****","DESCRIPTION":"Height Finding(GROUND TRACK)","MAPPING1U":"3041","MAPPING1F":"3041","MAPPING1N":"3041","MAPPING1H":"3041"},{"SYMBOLID":"I*G*SRI---*****","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(GROUND TRACK)","MAPPING1U":"3042","MAPPING1F":"3042","MAPPING1N":"3042","MAPPING1H":"3042"},{"SYMBOLID":"I*G*SRMM--*****","DESCRIPTION":"Meteorological (Military)(GROUND TRACK)","MAPPING1U":"3043","MAPPING1F":"3043","MAPPING1N":"3043","MAPPING1H":"3043"},{"SYMBOLID":"I*G*SRMA--*****","DESCRIPTION":"Missile Acquisition(GROUND TRACK)","MAPPING1U":"3044","MAPPING1F":"3044","MAPPING1N":"3044","MAPPING1H":"3044"},{"SYMBOLID":"I*G*SRMG--*****","DESCRIPTION":"Missile Guidance(GROUND TRACK)","MAPPING1U":"3045","MAPPING1F":"3045","MAPPING1N":"3045","MAPPING1H":"3045"},{"SYMBOLID":"I*G*SRMT--*****","DESCRIPTION":"Missile Tracking(GROUND TRACK)","MAPPING1U":"3046","MAPPING1F":"3046","MAPPING1N":"3046","MAPPING1H":"3046"},{"SYMBOLID":"I*G*SRMF--*****","DESCRIPTION":"Multi-Function(GROUND TRACK)","MAPPING1U":"3047","MAPPING1F":"3047","MAPPING1N":"3047","MAPPING1H":"3047"},{"SYMBOLID":"I*G*SRS---*****","DESCRIPTION":"Shell Tracking","MAPPING1U":"3048","MAPPING1F":"3048","MAPPING1N":"3048","MAPPING1H":"3048"},{"SYMBOLID":"I*G*SRTA--*****","DESCRIPTION":"Target Acquisition(Radar)","MAPPING1U":"3049","MAPPING1F":"3049","MAPPING1N":"3049","MAPPING1H":"3049"},{"SYMBOLID":"I*G*SRTI--*****","DESCRIPTION":"Target Illuminator(Ground Track)","MAPPING1U":"3050","MAPPING1F":"3050","MAPPING1N":"3050","MAPPING1H":"3050"},{"SYMBOLID":"I*G*SRTT--*****","DESCRIPTION":"Target Tracking(Ground Track)","MAPPING1U":"3051","MAPPING1F":"3051","MAPPING1N":"3051","MAPPING1H":"3051"},{"SYMBOLID":"I*G*SRU---*****","DESCRIPTION":"Unknown(Ground Track)","MAPPING1U":"3052","MAPPING1F":"3052","MAPPING1N":"3052","MAPPING1H":"3052"},{"SYMBOLID":"I*S*------*****","DESCRIPTION":"Sea Surface Track"},{"SYMBOLID":"I*S*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*S*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*S*SCC---*****","DESCRIPTION":"Cellular/Mobile(SEA SURFACE TRACK)","MAPPING1U":"3053","MAPPING1F":"3053","MAPPING1N":"3053","MAPPING1H":"3053"},{"SYMBOLID":"I*S*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SEA SURFACE TRACK)","MAPPING1U":"3054","MAPPING1F":"3054","MAPPING1N":"3054","MAPPING1H":"3054"},{"SYMBOLID":"I*S*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Sea Surface Track)","MAPPING1U":"3055","MAPPING1F":"3055","MAPPING1N":"3055","MAPPING1H":"3055"},{"SYMBOLID":"I*S*SCS---*****","DESCRIPTION":"Satellite Up-Link(Sea Surface Track)","MAPPING1U":"3056","MAPPING1F":"3056","MAPPING1N":"3056","MAPPING1H":"3056"},{"SYMBOLID":"I*S*SR----*****","DESCRIPTION":"Radar(Sea Surface Track)"},{"SYMBOLID":"I*S*SRAT--*****","DESCRIPTION":"Air Traffic Control(SEA SURFACE TRACK)","MAPPING1U":"3057","MAPPING1F":"3057","MAPPING1N":"3057","MAPPING1H":"3057"},{"SYMBOLID":"I*S*SRAA--*****","DESCRIPTION":"Anti-Aircraft(SEA SURFACE TRACK)","MAPPING1U":"3058","MAPPING1F":"3058","MAPPING1N":"3058","MAPPING1H":"3058"},{"SYMBOLID":"I*S*SRCA--*****","DESCRIPTION":"Controlled Approach(SEA SURFACE TRACK)","MAPPING1U":"3059","MAPPING1F":"3059","MAPPING1N":"3059","MAPPING1H":"3059"},{"SYMBOLID":"I*S*SRCI--*****","DESCRIPTION":"Controlled Intercept(SEA SURFACE TRACK)","MAPPING1U":"3060","MAPPING1F":"3060","MAPPING1N":"3060","MAPPING1H":"3060"},{"SYMBOLID":"I*S*SRD---*****","DESCRIPTION":"Data Transmission(SEA SURFACE TRACK)","MAPPING1U":"3061","MAPPING1F":"3061","MAPPING1N":"3061","MAPPING1H":"3061"},{"SYMBOLID":"I*S*SRE---*****","DESCRIPTION":"Early Warning(SEA SURFACE TRACK)","MAPPING1U":"3062","MAPPING1F":"3062","MAPPING1N":"3062","MAPPING1H":"3062"},{"SYMBOLID":"I*S*SRF---*****","DESCRIPTION":"Fire Control(SEA SURFACE TRACK)","MAPPING1U":"3063","MAPPING1F":"3063","MAPPING1N":"3063","MAPPING1H":"3063"},{"SYMBOLID":"I*S*SRH---*****","DESCRIPTION":"Height Finding(SEA SURFACE TRACK)","MAPPING1U":"3064","MAPPING1F":"3064","MAPPING1N":"3064","MAPPING1H":"3064"},{"SYMBOLID":"I*S*SRI---*****","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(SEA SURFACE TRACK)","MAPPING1U":"3065","MAPPING1F":"3065","MAPPING1N":"3065","MAPPING1H":"3065"},{"SYMBOLID":"I*S*SRMM--*****","DESCRIPTION":"Meteorological (Military)(SEA SURFACE TRACK)","MAPPING1U":"3066","MAPPING1F":"3066","MAPPING1N":"3066","MAPPING1H":"3066"},{"SYMBOLID":"I*S*SRMA--*****","DESCRIPTION":"Missile Acquisition(SEA SURFACE TRACK)","MAPPING1U":"3067","MAPPING1F":"3067","MAPPING1N":"3067","MAPPING1H":"3067"},{"SYMBOLID":"I*S*SRMG--*****","DESCRIPTION":"Missile Guidance(SEA SURFACE TRACK)","MAPPING1U":"3068","MAPPING1F":"3068","MAPPING1N":"3068","MAPPING1H":"3068"},{"SYMBOLID":"I*S*SRMT--*****","DESCRIPTION":"Missile Tracking(SEA SURFACE TRACK)","MAPPING1U":"3069","MAPPING1F":"3069","MAPPING1N":"3069","MAPPING1H":"3069"},{"SYMBOLID":"I*S*SRMF--*****","DESCRIPTION":"Multi-Function(SEA SURFACE TRACK)","MAPPING1U":"3070","MAPPING1F":"3070","MAPPING1N":"3070","MAPPING1H":"3070"},{"SYMBOLID":"I*S*SRS---*****","DESCRIPTION":"Surface Search(Sea Surface Track)","MAPPING1U":"3071","MAPPING1F":"3071","MAPPING1N":"3071","MAPPING1H":"3071"},{"SYMBOLID":"I*S*SRTA--*****","DESCRIPTION":"Target Acquisition(Sea Surface Track)","MAPPING1U":"3072","MAPPING1F":"3072","MAPPING1N":"3072","MAPPING1H":"3072"},{"SYMBOLID":"I*S*SRTI--*****","DESCRIPTION":"Target Illuminator(Sea Surface Track)","MAPPING1U":"3073","MAPPING1F":"3073","MAPPING1N":"3073","MAPPING1H":"3073"},{"SYMBOLID":"I*S*SRTT--*****","DESCRIPTION":"Target Tracking(Sea Surface Track)","MAPPING1U":"3074","MAPPING1F":"3074","MAPPING1N":"3074","MAPPING1H":"3074"},{"SYMBOLID":"I*S*SRU---*****","DESCRIPTION":"Unknown(Sea Surface Track)","MAPPING1U":"3075","MAPPING1F":"3075","MAPPING1N":"3075","MAPPING1H":"3075"},{"SYMBOLID":"I*U*------*****","DESCRIPTION":"Subsurface Track"},{"SYMBOLID":"I*U*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*U*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*U*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SUBSURFACE TRACK)","MAPPING1U":"3076","MAPPING1F":"3076","MAPPING1N":"3076","MAPPING1H":"3076"},{"SYMBOLID":"I*U*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Subsurface Track)","MAPPING1U":"3077","MAPPING1F":"3077","MAPPING1N":"3077","MAPPING1H":"3077"},{"SYMBOLID":"I*U*SCS---*****","DESCRIPTION":"Satellite Up-Link(Subsurface Track)","MAPPING1U":"3078","MAPPING1F":"3078","MAPPING1N":"3078","MAPPING1H":"3078"},{"SYMBOLID":"I*U*SR----*****","DESCRIPTION":"Radar(Subsurface Track)"},{"SYMBOLID":"I*U*SRD---*****","DESCRIPTION":"Data Transmission(SUBSURFACE TRACK)","MAPPING1U":"3079","MAPPING1F":"3079","MAPPING1N":"3079","MAPPING1H":"3079"},{"SYMBOLID":"I*U*SRE---*****","DESCRIPTION":"Early Warning(SUBSURFACE TRACK)","MAPPING1U":"3080","MAPPING1F":"3080","MAPPING1N":"3080","MAPPING1H":"3080"},{"SYMBOLID":"I*U*SRM---*****","DESCRIPTION":"Multi-Function(Subsurface Track)","MAPPING1U":"3081","MAPPING1F":"3081","MAPPING1N":"3081","MAPPING1H":"3081"},{"SYMBOLID":"I*U*SRS---*****","DESCRIPTION":"Surface Search(Subsurface Track)","MAPPING1U":"3082","MAPPING1F":"3082","MAPPING1N":"3082","MAPPING1H":"3082"},{"SYMBOLID":"I*U*SRT---*****","DESCRIPTION":"Target Acquisition(Subsurface Track)","MAPPING1U":"3083","MAPPING1F":"3083","MAPPING1N":"3083","MAPPING1H":"3083"},{"SYMBOLID":"I*U*SRU---*****","DESCRIPTION":"Unknown(Subsurface Track)","MAPPING1U":"3084","MAPPING1F":"3084","MAPPING1N":"3084","MAPPING1H":"3084"},{"SYMBOLID":"O*-*------*****","DESCRIPTION":"Stability Operations"},{"SYMBOLID":"O*V*------*****","DESCRIPTION":"Violent Activities"},{"SYMBOLID":"O*V*A-----*****","DESCRIPTION":"Arson/Fire","MAPPING1U":"3999","MAPPING1F":"3999","MAPPING1N":"3999","MAPPING1H":"3999"},{"SYMBOLID":"O*V*M-----*****","DESCRIPTION":"Killing (General)","MAPPING1U":"4001","MAPPING1F":"4002","MAPPING1N":"4003","MAPPING1H":"4004"},{"SYMBOLID":"O*V*MA----*****","DESCRIPTION":"Murder","MAPPING1U":"4005","MAPPING1F":"4006","MAPPING1N":"4007","MAPPING1H":"4008"},{"SYMBOLID":"O*V*MB----*****","DESCRIPTION":"Execution","MAPPING1U":"4009","MAPPING1F":"4010","MAPPING1N":"4011","MAPPING1H":"4012"},{"SYMBOLID":"O*V*MC----*****","DESCRIPTION":"Assassination","MAPPING1U":"4013","MAPPING1F":"4014","MAPPING1N":"4015","MAPPING1H":"4016"},{"SYMBOLID":"O*V*B-----*****","DESCRIPTION":"Bomb/Bombing","MAPPING1U":"4017","MAPPING1F":"4017","MAPPING1N":"4017","MAPPING1H":"4017"},{"SYMBOLID":"O*V*Y-----*****","DESCRIPTION":"Booby Trap","MAPPING1U":"4018","MAPPING1F":"4018","MAPPING1N":"4018","MAPPING1H":"4018"},{"SYMBOLID":"O*V*D-----*****","DESCRIPTION":"Drive-By Shooting","MAPPING1U":"4019","MAPPING1F":"4019","MAPPING1N":"4019","MAPPING1H":"4019"},{"SYMBOLID":"O*V*S-----*****","DESCRIPTION":"Sniping","MAPPING1U":"4020","MAPPING1F":"4020","MAPPING1N":"4020","MAPPING1H":"4020"},{"SYMBOLID":"O*V*P-----*****","DESCRIPTION":"Poisoning","MAPPING1U":"4021","MAPPING1F":"4021","MAPPING1N":"4021","MAPPING1H":"4021"},{"SYMBOLID":"O*V*E-----*****","DESCRIPTION":"Explosion","MAPPING1U":"4022","MAPPING1F":"4022","MAPPING1N":"4022","MAPPING1H":"4022","MAPPING2":"406","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"O*V*EI----*****","DESCRIPTION":"IED Explosion","MAPPING1U":"4023","MAPPING1F":"4023","MAPPING1N":"4023","MAPPING1H":"4023"},{"SYMBOLID":"O*V*EG----*****","DESCRIPTION":"Explosion, Grenade","MAPPING1U":"4508","MAPPING1F":"4508","MAPPING1N":"4508","MAPPING1H":"4508"},{"SYMBOLID":"O*V*EN----*****","DESCRIPTION":"Explosion, Incendiary","MAPPING1U":"4509","MAPPING1F":"4509","MAPPING1N":"4509","MAPPING1H":"4509"},{"SYMBOLID":"O*V*EM----*****","DESCRIPTION":"Explosion, Mine","MAPPING1U":"4510","MAPPING1F":"4510","MAPPING1N":"4510","MAPPING1H":"4510"},{"SYMBOLID":"O*V*EO----*****","DESCRIPTION":"Explosion, Mortar Fire","MAPPING1U":"4511","MAPPING1F":"4511","MAPPING1N":"4511","MAPPING1H":"4511"},{"SYMBOLID":"O*V*ER----*****","DESCRIPTION":"Explosion, Rocket","MAPPING1U":"4512","MAPPING1F":"4512","MAPPING1N":"4512","MAPPING1H":"4512"},{"SYMBOLID":"O*V*EV----*****","DESCRIPTION":"Explosion, Wheeled Vehicle","MAPPING1U":"4513","MAPPING1F":"4513","MAPPING1N":"4513","MAPPING1H":"4513"},{"SYMBOLID":"O*L*------*****","DESCRIPTION":"Locations"},{"SYMBOLID":"O*L*B-----*****","DESCRIPTION":"Black List Location","MAPPING1U":"4024","MAPPING1F":"4024","MAPPING1N":"4024","MAPPING1H":"4024"},{"SYMBOLID":"O*L*G-----*****","DESCRIPTION":"Gray List Location","MAPPING1U":"4025","MAPPING1F":"4025","MAPPING1N":"4025","MAPPING1H":"4025"},{"SYMBOLID":"O*L*W-----*****","DESCRIPTION":"White List Location","MAPPING1U":"4026","MAPPING1F":"4026","MAPPING1N":"4026","MAPPING1H":"4026"},{"SYMBOLID":"O*L*M-----*****","DESCRIPTION":"Mass Grave Location","MAPPING1U":"4027","MAPPING1F":"4027","MAPPING1N":"4027","MAPPING1H":"4027"},{"SYMBOLID":"O*L*E-----*****","DESCRIPTION":"Drug Lab","MAPPING1U":"4505","MAPPING1F":"4505","MAPPING1N":"4505","MAPPING1H":"4505"},{"SYMBOLID":"O*L*H-----*****","DESCRIPTION":"House/Residence","MAPPING1U":"4521","MAPPING1F":"4521","MAPPING1N":"4521","MAPPING1H":"4521"},{"SYMBOLID":"O*L*N-----*****","DESCRIPTION":"Cave Entrance","MAPPING1U":"4503","MAPPING1F":"4503","MAPPING1N":"4503","MAPPING1H":"4503"},{"SYMBOLID":"O*L*F-----*****","DESCRIPTION":"Polling Place","MAPPING1U":"4522","MAPPING1F":"4522","MAPPING1N":"4522","MAPPING1H":"4522"},{"SYMBOLID":"O*O*------*****","DESCRIPTION":"Operations"},{"SYMBOLID":"O*O*P-----*****","DESCRIPTION":"Patrolling","MAPPING1U":"4028","MAPPING1F":"4028","MAPPING1N":"4028","MAPPING1H":"4028"},{"SYMBOLID":"O*O*R-----*****","DESCRIPTION":"Recruitment"},{"SYMBOLID":"O*O*RW----*****","DESCRIPTION":"Recruitment (Willing)","MAPPING1U":"4029","MAPPING1F":"4029","MAPPING1N":"4029","MAPPING1H":"4029"},{"SYMBOLID":"O*O*RC----*****","DESCRIPTION":"Recruitment (Coerced/Impressed)","MAPPING1U":"4030","MAPPING1F":"4030","MAPPING1N":"4030","MAPPING1H":"4030"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Demonstration","MAPPING1U":"4031","MAPPING1F":"4031","MAPPING1N":"4031","MAPPING1H":"4031"},{"SYMBOLID":"O*O*M-----*****","DESCRIPTION":"Mine Laying","MAPPING1U":"4032","MAPPING1F":"4032","MAPPING1N":"4032","MAPPING1H":"4032"},{"SYMBOLID":"O*O*Y-----*****","DESCRIPTION":"Psychological Operations (Psyop)","MAPPING1U":"4033","MAPPING1F":"4033","MAPPING1N":"4033","MAPPING1H":"4033","MAPPING2":"4034","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YT----*****","DESCRIPTION":"Psyop (TV and Radio Propaganda)","MAPPING1U":"4035","MAPPING1F":"4036","MAPPING1N":"4037","MAPPING1H":"4038","MAPPING2":"4039","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YW----*****","DESCRIPTION":"Psyop (Written Propaganda)","MAPPING1U":"4043","MAPPING1F":"4043","MAPPING1N":"4043","MAPPING1H":"4043","MAPPING2":"4045","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YH----*****","DESCRIPTION":"House-to-House Propaganda","MAPPING1U":"4044","MAPPING1F":"4044","MAPPING1N":"4044","MAPPING1H":"4044","MAPPING2":"4045","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*F-----*****","DESCRIPTION":"Foraging/Searching","MAPPING1U":"4046","MAPPING1F":"4046","MAPPING1N":"4046","MAPPING1H":"4046"},{"SYMBOLID":"O*O*S-----*****","DESCRIPTION":"Spy","MAPPING1U":"4047","MAPPING1F":"4047","MAPPING1N":"4047","MAPPING1H":"4047"},{"SYMBOLID":"O*O*O-----*****","DESCRIPTION":"Food Distribution","MAPPING1U":"4048","MAPPING1F":"4049","MAPPING1N":"4050","MAPPING1H":"4051"},{"SYMBOLID":"O*O*E-----*****","DESCRIPTION":"Extortion","MAPPING1U":"4052","MAPPING1F":"4052","MAPPING1N":"4052","MAPPING1H":"4052"},{"SYMBOLID":"O*O*H-----*****","DESCRIPTION":"Hijacking"},{"SYMBOLID":"O*O*HT----*****","DESCRIPTION":"Hijacking (Vehicle)","MAPPING1U":"4053","MAPPING1F":"4053","MAPPING1N":"4053","MAPPING1H":"4053"},{"SYMBOLID":"O*O*HA----*****","DESCRIPTION":"Hijacking (Airplane)","MAPPING1U":"4054","MAPPING1F":"4054","MAPPING1N":"4054","MAPPING1H":"4054","MAPPING2":"4055","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*HV----*****","DESCRIPTION":"Hijacking (Boat)","MAPPING1U":"4056","MAPPING1F":"4056","MAPPING1N":"4056","MAPPING1H":"4056","MAPPING2":"4057","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*K-----*****","DESCRIPTION":"Kidnapping","MAPPING1U":"4058","MAPPING1F":"4058","MAPPING1N":"4058","MAPPING1H":"4058"},{"SYMBOLID":"O*O*KA----*****","DESCRIPTION":"Attempted Kidnapping","MAPPING1U":"4059","MAPPING1F":"4059","MAPPING1N":"4059","MAPPING1H":"4059"},{"SYMBOLID":"O*O*A-----*****","DESCRIPTION":"Arrest","MAPPING1U":"4060","MAPPING1F":"4060","MAPPING1N":"4060","MAPPING1H":"4060"},{"SYMBOLID":"O*O*U-----*****","DESCRIPTION":"Drug Operation","MAPPING1U":"4061","MAPPING1F":"4061","MAPPING1N":"4061","MAPPING1H":"4061"},{"SYMBOLID":"O*O*UT----*****","DESCRIPTION":"Drug Trafficking","MAPPING1U":"4506","MAPPING1F":"4506","MAPPING1N":"4506","MAPPING1H":"4506"},{"SYMBOLID":"O*O*N-----*****","DESCRIPTION":"Raid on a House","MAPPING1U":"4500","MAPPING1F":"4500","MAPPING1N":"4500","MAPPING1H":"4500"},{"SYMBOLID":"O*O*2-----*****","DESCRIPTION":"Burglary","MAPPING1U":"4502","MAPPING1F":"4502","MAPPING1N":"4502","MAPPING1H":"4502"},{"SYMBOLID":"O*O*V-----*****","DESCRIPTION":"Home Eviction","MAPPING1U":"4514","MAPPING1F":"4514","MAPPING1N":"4514","MAPPING1H":"4514"},{"SYMBOLID":"O*O*I-----*****","DESCRIPTION":"Black Marketing","MAPPING1U":"4516","MAPPING1F":"4516","MAPPING1N":"4516","MAPPING1H":"4516"},{"SYMBOLID":"O*O*J-----*****","DESCRIPTION":"Jail Break","MAPPING1U":"4518","MAPPING1F":"4518","MAPPING1N":"4518","MAPPING1H":"4518","MAPPING2":"4519","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*B-----*****","DESCRIPTION":"Robbery","MAPPING1U":"4524","MAPPING1F":"4524","MAPPING1N":"4524","MAPPING1H":"4524"},{"SYMBOLID":"O*O*G-----*****","DESCRIPTION":"Sabotage","MAPPING1U":"4526","MAPPING1F":"4526","MAPPING1N":"4526","MAPPING1H":"4526"},{"SYMBOLID":"O*O*X-----*****","DESCRIPTION":"Smuggling","MAPPING1U":"4527","MAPPING1F":"4527","MAPPING1N":"4527","MAPPING1H":"4527"},{"SYMBOLID":"O*O*W-----*****","DESCRIPTION":"Rock Throwing","MAPPING1U":"4525","MAPPING1F":"4525","MAPPING1N":"4525","MAPPING1H":"4525"},{"SYMBOLID":"O*O*Z-----*****","DESCRIPTION":"Suspicious Activity","MAPPING1U":"4529","MAPPING1F":"4529","MAPPING1N":"4529","MAPPING1H":"4529"},{"SYMBOLID":"O*O*T-----*****","DESCRIPTION":"Theft","MAPPING1U":"4531","MAPPING1F":"4531","MAPPING1N":"4531","MAPPING1H":"4531"},{"SYMBOLID":"O*O*TV----*****","DESCRIPTION":"Wheeled Vehicle Theft","MAPPING1U":"4533","MAPPING1F":"4533","MAPPING1N":"4533","MAPPING1H":"4533"},{"SYMBOLID":"O*O*Q-----*****","DESCRIPTION":"Warrant Served","MAPPING1U":"4532","MAPPING1F":"4532","MAPPING1N":"4532","MAPPING1H":"4532"},{"SYMBOLID":"O*I*------*****","DESCRIPTION":"Items"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Refugees","MAPPING1U":"4066","MAPPING1F":"4066","MAPPING1N":"4066","MAPPING1H":"4066"},{"SYMBOLID":"O*I*S-----*****","DESCRIPTION":"Safe House","MAPPING1U":"4067","MAPPING1F":"4067","MAPPING1N":"4067","MAPPING1H":"4067"},{"SYMBOLID":"O*I*G-----*****","DESCRIPTION":"Graffiti","MAPPING1U":"4068","MAPPING1F":"4068","MAPPING1N":"4068","MAPPING1H":"4068"},{"SYMBOLID":"O*I*V-----*****","DESCRIPTION":"Vandalism/Loot/Ransack/Plunder/Sack","MAPPING1U":"4069","MAPPING1F":"4069","MAPPING1N":"4069","MAPPING1H":"4069"},{"SYMBOLID":"O*I*I-----*****","DESCRIPTION":"Known Insurgent Vehicle","MAPPING1U":"4070","MAPPING1F":"4070","MAPPING1N":"4070","MAPPING1H":"4070"},{"SYMBOLID":"O*I*D-----*****","DESCRIPTION":"Drug Vehicle","MAPPING1U":"4071","MAPPING1F":"4071","MAPPING1N":"4071","MAPPING1H":"4071"},{"SYMBOLID":"O*I*F-----*****","DESCRIPTION":"Internal Security Force","MAPPING1U":"4072","MAPPING1F":"4072","MAPPING1N":"4072","MAPPING1H":"4072"},{"SYMBOLID":"O*I*M-----*****","DESCRIPTION":"Meeting","MAPPING1U":"4520","MAPPING1F":"4520","MAPPING1N":"4520","MAPPING1H":"4520"},{"SYMBOLID":"O*I*T-----*****","DESCRIPTION":"Tent","MAPPING1U":"4530","MAPPING1F":"4530","MAPPING1N":"4530","MAPPING1H":"4530"},{"SYMBOLID":"O*P*------*****","DESCRIPTION":"Individual","MAPPING1U":"4073","MAPPING1F":"4073","MAPPING1N":"4073","MAPPING1H":"4073"},{"SYMBOLID":"O*P*A-----*****","DESCRIPTION":"Leader","MAPPING1U":"4074","MAPPING1F":"4074","MAPPING1N":"4074","MAPPING1H":"4074"},{"SYMBOLID":"O*P*AR----*****","DESCRIPTION":"Religious Leader","MAPPING1U":"4523","MAPPING1F":"4523","MAPPING1N":"4523","MAPPING1H":"4523"},{"SYMBOLID":"O*P*B-----*****","DESCRIPTION":"Targeted Individual","MAPPING1U":"4075","MAPPING1F":"4075","MAPPING1N":"4075","MAPPING1H":"4075"},{"SYMBOLID":"O*P*C-----*****","DESCRIPTION":"Terrorist","MAPPING1U":"4076","MAPPING1F":"4076","MAPPING1N":"4076","MAPPING1H":"4076"},{"SYMBOLID":"O*P*F-----*****","DESCRIPTION":"IED Suicide Bomber","MAPPING1U":"4501","MAPPING1F":"4501","MAPPING1N":"4501","MAPPING1H":"4501"},{"SYMBOLID":"O*P*D-----*****","DESCRIPTION":"Dead Body","MAPPING1U":"4504","MAPPING1F":"4504","MAPPING1N":"4504","MAPPING1H":"4504"},{"SYMBOLID":"O*P*G-----*****","DESCRIPTION":"Exfiltrating Individual","MAPPING1U":"4507","MAPPING1F":"4507","MAPPING1N":"4507","MAPPING1H":"4507"},{"SYMBOLID":"O*P*H-----*****","DESCRIPTION":"Infiltrating Individual","MAPPING1U":"4517","MAPPING1F":"4517","MAPPING1N":"4517","MAPPING1H":"4517"},{"SYMBOLID":"O*P*E-----*****","DESCRIPTION":"Speaker","MAPPING1U":"4528","MAPPING1F":"4528","MAPPING1N":"4528","MAPPING1H":"4528"},{"SYMBOLID":"O*G*------*****","DESCRIPTION":"Non-Military Group or Organization","MAPPING1U":"4077","MAPPING1F":"4077","MAPPING1N":"4077","MAPPING1H":"4077"},{"SYMBOLID":"O*G*B-----*****","DESCRIPTION":"Non-Governmental Organizations (NGO)","MAPPING1U":"4079","MAPPING1F":"4079","MAPPING1N":"4079","MAPPING1H":"4079"},{"SYMBOLID":"O*G*C-----*****","DESCRIPTION":"Terrorist Organization","MAPPING1U":"4080","MAPPING1F":"4080","MAPPING1N":"4080","MAPPING1H":"4080"},{"SYMBOLID":"O*G*D-----*****","DESCRIPTION":"Religious Organization","MAPPING1U":"4081","MAPPING1F":"4081","MAPPING1N":"4081","MAPPING1H":"4081"},{"SYMBOLID":"O*G*E-----*****","DESCRIPTION":"Foreign Fighter","MAPPING1U":"4082","MAPPING1F":"4082","MAPPING1N":"4082","MAPPING1H":"4082"},{"SYMBOLID":"O*G*F-----*****","DESCRIPTION":"GANG","MAPPING1U":"4083","MAPPING1F":"4083","MAPPING1N":"4083","MAPPING1H":"4083"},{"SYMBOLID":"O*R*------*****","DESCRIPTION":"Rape","MAPPING1U":"4084","MAPPING1F":"4084","MAPPING1N":"4084","MAPPING1H":"4084"},{"SYMBOLID":"O*R*A-----*****","DESCRIPTION":"Attempted Rape","MAPPING1U":"4085","MAPPING1F":"4085","MAPPING1N":"4085","MAPPING1H":"4085"},{"SYMBOLID":"O*E*------*****","DESCRIPTION":"Events"},{"SYMBOLID":"O*E*A-----*****","DESCRIPTION":"Elections","MAPPING1U":"9004","MAPPING1F":"9004","MAPPING1N":"9004","MAPPING1H":"9004"},{"SYMBOLID":"O*E*B-----*****","DESCRIPTION":"Speech","MAPPING1U":"9005","MAPPING1F":"9005","MAPPING1N":"9005","MAPPING1H":"9005"},{"SYMBOLID":"O*E*C-----*****","DESCRIPTION":"Sermon","MAPPING1U":"9006","MAPPING1F":"9006","MAPPING1N":"9006","MAPPING1H":"9006"},{"SYMBOLID":"O*E*D-----*****","DESCRIPTION":"Meeting","MAPPING1U":"9007","MAPPING1F":"9007","MAPPING1N":"9007","MAPPING1H":"9007"},{"SYMBOLID":"O*E*E-----*****","DESCRIPTION":"Demonstration(Events)","MAPPING1U":"9008","MAPPING1F":"9008","MAPPING1N":"9008","MAPPING1H":"9008"},{"SYMBOLID":"O*E*F-----*****","DESCRIPTION":"Riot","MAPPING1U":"9009","MAPPING1F":"9009","MAPPING1N":"9009","MAPPING1H":"9009"},{"SYMBOLID":"O*E*G-----*****","DESCRIPTION":"Gang Activity","MAPPING1U":"9010","MAPPING1F":"9010","MAPPING1N":"9010","MAPPING1H":"9010"},{"SYMBOLID":"O*E*H-----*****","DESCRIPTION":"Jail Break/Escape Custody","MAPPING1U":"9011","MAPPING1F":"9011","MAPPING1N":"9011","MAPPING1H":"9011"},{"SYMBOLID":"O*E*I-----*****","DESCRIPTION":"Rock Throwing","MAPPING1U":"9012","MAPPING1F":"9012","MAPPING1N":"9012","MAPPING1H":"9012"},{"SYMBOLID":"O*E*J-----*****","DESCRIPTION":"Illegal Selling/Purchasing/Distributing/Black Market","MAPPING1U":"9013","MAPPING1F":"9013","MAPPING1N":"9013","MAPPING1H":"9013"},{"SYMBOLID":"O*E*K-----*****","DESCRIPTION":"Surveillance","MAPPING1U":"9014","MAPPING1F":"9014","MAPPING1N":"9014","MAPPING1H":"9014"},{"SYMBOLID":"O*E*L-----*****","DESCRIPTION":"Lights","MAPPING1U":"9015","MAPPING1F":"9015","MAPPING1N":"9015","MAPPING1H":"9015"},{"SYMBOLID":"O*E*M-----*****","DESCRIPTION":"Border Crossing","MAPPING1U":"9016","MAPPING1F":"9016","MAPPING1N":"9016","MAPPING1H":"9016"},{"SYMBOLID":"O*E*N-----*****","DESCRIPTION":"Border Activity","MAPPING1U":"9017","MAPPING1F":"9017","MAPPING1N":"9017","MAPPING1H":"9017"},{"SYMBOLID":"O*E*O-----*****","DESCRIPTION":"Smuggling","MAPPING1U":"9018","MAPPING1F":"9018","MAPPING1N":"9018","MAPPING1H":"9018"},{"SYMBOLID":"O*E*P-----*****","DESCRIPTION":"Exfiltration","MAPPING1U":"9019","MAPPING1F":"9019","MAPPING1N":"9019","MAPPING1H":"9019"},{"SYMBOLID":"O*E*Q-----*****","DESCRIPTION":"Infiltration","MAPPING1U":"9020","MAPPING1F":"9020","MAPPING1N":"9020","MAPPING1H":"9020"},{"SYMBOLID":"O*E*R-----*****","DESCRIPTION":"Auto Theft","MAPPING1U":"9021","MAPPING1F":"9021","MAPPING1N":"9021","MAPPING1H":"9021"},{"SYMBOLID":"O*E*S-----*****","DESCRIPTION":"Auto Accident","MAPPING1U":"9022","MAPPING1F":"9022","MAPPING1N":"9022","MAPPING1H":"9022"},{"SYMBOLID":"O*E*T-----*****","DESCRIPTION":"Looting","MAPPING1U":"9023","MAPPING1F":"9023","MAPPING1N":"9023","MAPPING1H":"9023"},{"SYMBOLID":"O*E*U-----*****","DESCRIPTION":"Theft","MAPPING1U":"9024","MAPPING1F":"9024","MAPPING1N":"9024","MAPPING1H":"9024"},{"SYMBOLID":"O*E*V-----*****","DESCRIPTION":"Robbery","MAPPING1U":"9025","MAPPING1F":"9025","MAPPING1N":"9025","MAPPING1H":"9025"},{"SYMBOLID":"O*E*X-----*****","DESCRIPTION":"Shooting (Non Deadly)","MAPPING1U":"9027","MAPPING1F":"9027","MAPPING1N":"9027","MAPPING1H":"9027"},{"SYMBOLID":"O*E*W-----*****","DESCRIPTION":"Home Eviction","MAPPING1U":"9026","MAPPING1F":"9026","MAPPING1N":"9026","MAPPING1H":"9026"},{"SYMBOLID":"O*E*Y-----*****","DESCRIPTION":"Raid","MAPPING1U":"9028","MAPPING1F":"9028","MAPPING1N":"9028","MAPPING1H":"9028"},{"SYMBOLID":"O*E*Z-----*****","DESCRIPTION":"Sabotage","MAPPING1U":"9029","MAPPING1F":"9029","MAPPING1N":"9029","MAPPING1H":"9029"},{"SYMBOLID":"O*E*AA----*****","DESCRIPTION":"Warrant Served","MAPPING1U":"9030","MAPPING1F":"9030","MAPPING1N":"9030","MAPPING1H":"9030"},{"SYMBOLID":"O*E*AB----*****","DESCRIPTION":"Rape","MAPPING1U":"9031","MAPPING1F":"9031","MAPPING1N":"9031","MAPPING1H":"9031"},{"SYMBOLID":"O*E*AC----*****","DESCRIPTION":"Attempted Rape","MAPPING1U":"9032","MAPPING1F":"9032","MAPPING1N":"9032","MAPPING1H":"9032"},{"SYMBOLID":"O*E*AD----*****","DESCRIPTION":"Attack(Events)"},{"SYMBOLID":"O*E*ADA---*****","DESCRIPTION":"Attack on NGO","MAPPING1U":"9033","MAPPING1F":"9033","MAPPING1N":"9033","MAPPING1H":"9033"},{"SYMBOLID":"O*E*ADB---*****","DESCRIPTION":"Terrorist Attack","MAPPING1U":"9034","MAPPING1F":"9034","MAPPING1N":"9034","MAPPING1H":"9034"},{"SYMBOLID":"O*E*ADC---*****","DESCRIPTION":"Grenade Attack","MAPPING1U":"9035","MAPPING1F":"9035","MAPPING1N":"9035","MAPPING1H":"9035"},{"SYMBOLID":"O*E*ADD---*****","DESCRIPTION":"Rocket Attack","MAPPING1U":"9036","MAPPING1F":"9036","MAPPING1N":"9036","MAPPING1H":"9036"},{"SYMBOLID":"O*E*AE----*****","DESCRIPTION":"Explosions"},{"SYMBOLID":"O*E*AEA---*****","DESCRIPTION":"Explosion (general)","MAPPING1U":"9037","MAPPING1F":"9037","MAPPING1N":"9037","MAPPING1H":"9037"},{"SYMBOLID":"O*E*AEB---*****","DESCRIPTION":"Explosion, Mine","MAPPING1U":"9038","MAPPING1F":"9038","MAPPING1N":"9038","MAPPING1H":"9038"},{"SYMBOLID":"O*E*AEC---*****","DESCRIPTION":"Explosion, Grenade","MAPPING1U":"9039","MAPPING1F":"9039","MAPPING1N":"9039","MAPPING1H":"9039"},{"SYMBOLID":"O*E*AED---*****","DESCRIPTION":"Explosion, Bomb","MAPPING1U":"9040","MAPPING1F":"9040","MAPPING1N":"9040","MAPPING1H":"9040"},{"SYMBOLID":"O*E*AEE---*****","DESCRIPTION":"Explosion, Mortar Fire","MAPPING1U":"9041","MAPPING1F":"9041","MAPPING1N":"9041","MAPPING1H":"9041"},{"SYMBOLID":"O*E*AEF---*****","DESCRIPTION":"Explosion, Incendiary","MAPPING1U":"9042","MAPPING1F":"9042","MAPPING1N":"9042","MAPPING1H":"9042"},{"SYMBOLID":"O*E*AEG---*****","DESCRIPTION":"Explosion, Rocket","MAPPING1U":"9043","MAPPING1F":"9043","MAPPING1N":"9043","MAPPING1H":"9043"},{"SYMBOLID":"O*E*AEH---*****","DESCRIPTION":"Explosion, Improvised Explosive Device (IED)","MAPPING1U":"9044","MAPPING1F":"9044","MAPPING1N":"9044","MAPPING1H":"9044"},{"SYMBOLID":"O*E*AEI---*****","DESCRIPTION":"Explosion, Car Bomb","MAPPING1U":"9045","MAPPING1F":"9045","MAPPING1N":"9045","MAPPING1H":"9045"},{"SYMBOLID":"O*E*AEJ---*****","DESCRIPTION":"Suicide Bombing","MAPPING1U":"9046","MAPPING1F":"9046","MAPPING1N":"9046","MAPPING1H":"9046"},{"SYMBOLID":"O*E*AF----*****","DESCRIPTION":"Fighting/Contact"},{"SYMBOLID":"O*E*AFA---*****","DESCRIPTION":"Fighting (General)","MAPPING1U":"9047","MAPPING1F":"9047","MAPPING1N":"9047","MAPPING1H":"9047"},{"SYMBOLID":"O*E*AFB---*****","DESCRIPTION":"Coalition vs. Enemy","MAPPING1U":"9048","MAPPING1F":"9048","MAPPING1N":"9048","MAPPING1H":"9048"},{"SYMBOLID":"O*E*AFC---*****","DESCRIPTION":"Coalition vs. Coalition","MAPPING1U":"9049","MAPPING1F":"9049","MAPPING1N":"9049","MAPPING1H":"9049"},{"SYMBOLID":"O*E*AG----*****","DESCRIPTION":"Drug Possession","MAPPING1U":"9050","MAPPING1F":"9050","MAPPING1N":"9050","MAPPING1H":"9050"},{"SYMBOLID":"O*E*AH----*****","DESCRIPTION":"Drug Trafficking","MAPPING1U":"9051","MAPPING1F":"9051","MAPPING1N":"9051","MAPPING1H":"9051"},{"SYMBOLID":"O*E*AI----*****","DESCRIPTION":"Suspicious Activity","MAPPING1U":"9052","MAPPING1F":"9052","MAPPING1N":"9052","MAPPING1H":"9052"},{"SYMBOLID":"O*E*AJ----*****","DESCRIPTION":"Activity","MAPPING1U":"9053","MAPPING1F":"9053","MAPPING1N":"9053","MAPPING1H":"9053"},{"SYMBOLID":"O*E*AK----*****","DESCRIPTION":"Threat","MAPPING1U":"9054","MAPPING1F":"9054","MAPPING1N":"9054","MAPPING1H":"9054"},{"SYMBOLID":"O*E*AL----*****","DESCRIPTION":"Crater","MAPPING1U":"9055","MAPPING1F":"9055","MAPPING1N":"9055","MAPPING1H":"9055"},{"SYMBOLID":"O*E*AM----*****","DESCRIPTION":"Pothole","MAPPING1U":"9056","MAPPING1F":"9057","MAPPING1N":"9058","MAPPING1H":"9059"},{"SYMBOLID":"O*E*AN----*****","DESCRIPTION":"Escalation of Force","MAPPING1U":"9060","MAPPING1F":"9061","MAPPING1N":"9062","MAPPING1H":"9063"},{"SYMBOLID":"O*E*AO----*****","DESCRIPTION":"Submunitions","MAPPING1U":"9064","MAPPING1F":"9064","MAPPING1N":"9064","MAPPING1H":"9064"},{"SYMBOLID":"O*E*AP----*****","DESCRIPTION":"Confiscation","MAPPING1U":"9065","MAPPING1F":"9066","MAPPING1N":"9067","MAPPING1H":"9068"},{"SYMBOLID":"O*E*AQ----*****","DESCRIPTION":"Counter Insurgency","MAPPING1U":"9069","MAPPING1F":"9070","MAPPING1N":"9071","MAPPING1H":"9072"},{"SYMBOLID":"O*E*AR----*****","DESCRIPTION":"Counter Terrorism","MAPPING1U":"9073","MAPPING1F":"9074","MAPPING1N":"9075","MAPPING1H":"9076"},{"SYMBOLID":"O*E*AS----*****","DESCRIPTION":"Humanitarian Assistance","MAPPING1U":"9077","MAPPING1F":"9078","MAPPING1N":"9079","MAPPING1H":"9080"},{"SYMBOLID":"O*E*AT----*****","DESCRIPTION":"Tests of Security","MAPPING1U":"9081","MAPPING1F":"9082","MAPPING1N":"9083","MAPPING1H":"9084"},{"SYMBOLID":"O*E*AU----*****","DESCRIPTION":"AWOL","MAPPING1U":"9085","MAPPING1F":"9085","MAPPING1N":"9085","MAPPING1H":"9085"},{"SYMBOLID":"O*E*AV----*****","DESCRIPTION":"Curfew","MAPPING1U":"9086","MAPPING1F":"9086","MAPPING1N":"9086","MAPPING1H":"9086"},{"SYMBOLID":"O*E*AW----*****","DESCRIPTION":"DUI","MAPPING1U":"9087","MAPPING1F":"9087","MAPPING1N":"9087","MAPPING1H":"9087"},{"SYMBOLID":"O*E*AX----*****","DESCRIPTION":"Prostitution","MAPPING1U":"9088","MAPPING1F":"9088","MAPPING1N":"9088","MAPPING1H":"9088"},{"SYMBOLID":"O*Y*------*****","DESCRIPTION":"Organization/Groups"},{"SYMBOLID":"O*Y*A-----*****","DESCRIPTION":"Organization (General)","MAPPING1U":"9089","MAPPING1F":"9089","MAPPING1N":"9089","MAPPING1H":"9089"},{"SYMBOLID":"O*Y*B-----*****","DESCRIPTION":"NGO Organization","MAPPING1U":"9090","MAPPING1F":"9090","MAPPING1N":"9090","MAPPING1H":"9090"},{"SYMBOLID":"O*Y*C-----*****","DESCRIPTION":"Displaced Persons, Refugees","MAPPING1U":"9091","MAPPING1F":"9091","MAPPING1N":"9091","MAPPING1H":"9091"},{"SYMBOLID":"O*Y*D-----*****","DESCRIPTION":"Terrorist Organization","MAPPING1U":"9092","MAPPING1F":"9092","MAPPING1N":"9092","MAPPING1H":"9092"},{"SYMBOLID":"O*Y*E-----*****","DESCRIPTION":"Religious Organization","MAPPING1U":"9093","MAPPING1F":"9093","MAPPING1N":"9093","MAPPING1H":"9093"},{"SYMBOLID":"O*Y*F-----*****","DESCRIPTION":"Group Tribe Cell","MAPPING1U":"9094","MAPPING1F":"9094","MAPPING1N":"9094","MAPPING1H":"9094"},{"SYMBOLID":"O*Y*G-----*****","DESCRIPTION":"Foreign Fighters","MAPPING1U":"9095","MAPPING1F":"9095","MAPPING1N":"9095","MAPPING1H":"9095"},{"SYMBOLID":"O*Y*R-----*****","DESCRIPTION":"Red Cross"},{"SYMBOLID":"O*Y*SP----*****","DESCRIPTION":"State Police"},{"SYMBOLID":"O*Y*LP----*****","DESCRIPTION":"Local Police"},{"SYMBOLID":"O*Y*SH----*****","DESCRIPTION":"Shelter"},{"SYMBOLID":"O*Y*FM----*****","DESCRIPTION":"FEMA"},{"SYMBOLID":"O*Y*SA----*****","DESCRIPTION":"Staging Area"},{"SYMBOLID":"O*Y*EP----*****","DESCRIPTION":"Evacuation Point"},{"SYMBOLID":"O*Y*PD----*****","DESCRIPTION":"Person in Distress"},{"SYMBOLID":"O*S*------*****","DESCRIPTION":"Structures"},{"SYMBOLID":"O*S*A-----*****","DESCRIPTION":"Compound/Post/Fort","MAPPING1U":"9103","MAPPING1F":"9103","MAPPING1N":"9103","MAPPING1H":"9103"},{"SYMBOLID":"O*S*B-----*****","DESCRIPTION":"House/Residence","MAPPING1U":"9104","MAPPING1F":"9104","MAPPING1N":"9104","MAPPING1H":"9104"},{"SYMBOLID":"O*S*C-----*****","DESCRIPTION":"Safe House(Structures)","MAPPING1U":"9105","MAPPING1F":"9105","MAPPING1N":"9105","MAPPING1H":"9105"},{"SYMBOLID":"O*S*D-----*****","DESCRIPTION":"Church","MAPPING1U":"9106","MAPPING1F":"9106","MAPPING1N":"9106","MAPPING1H":"9106"},{"SYMBOLID":"O*S*E-----*****","DESCRIPTION":"Mosque","MAPPING1U":"9107","MAPPING1F":"9107","MAPPING1N":"9107","MAPPING1H":"9107"},{"SYMBOLID":"O*S*F-----*****","DESCRIPTION":"Synagogue","MAPPING1U":"9108","MAPPING1F":"9108","MAPPING1N":"9108","MAPPING1H":"9108"},{"SYMBOLID":"O*S*G-----*****","DESCRIPTION":"Warehouse/Storage Facility","MAPPING1U":"9109","MAPPING1F":"9109","MAPPING1N":"9109","MAPPING1H":"9109"},{"SYMBOLID":"O*S*H-----*****","DESCRIPTION":"Bunker/Underground Facility","MAPPING1U":"9110","MAPPING1F":"9110","MAPPING1N":"9110","MAPPING1H":"9110"},{"SYMBOLID":"O*S*I-----*****","DESCRIPTION":"Tents","MAPPING1U":"9111","MAPPING1F":"9111","MAPPING1N":"9111","MAPPING1H":"9111"},{"SYMBOLID":"O*S*J-----*****","DESCRIPTION":"Cave","MAPPING1U":"9112","MAPPING1F":"9112","MAPPING1N":"9112","MAPPING1H":"9112"},{"SYMBOLID":"O*S*K-----*****","DESCRIPTION":"Camps"},{"SYMBOLID":"O*S*KA----*****","DESCRIPTION":"Camp (General)","MAPPING1U":"9114","MAPPING1F":"9114","MAPPING1N":"9114","MAPPING1H":"9114"},{"SYMBOLID":"O*S*KB----*****","DESCRIPTION":"Displaced Persons/Refugees Camp","MAPPING1U":"9115","MAPPING1F":"9115","MAPPING1N":"9115","MAPPING1H":"9115"},{"SYMBOLID":"O*S*KC----*****","DESCRIPTION":"Training Camp","MAPPING1U":"9116","MAPPING1F":"9116","MAPPING1N":"9116","MAPPING1H":"9116"},{"SYMBOLID":"O*S*L-----*****","DESCRIPTION":"Prison/Detention Facility","MAPPING1U":"9117","MAPPING1F":"9117","MAPPING1N":"9117","MAPPING1H":"9117"},{"SYMBOLID":"O*S*M-----*****","DESCRIPTION":"Police Station","MAPPING1U":"9118","MAPPING1F":"9118","MAPPING1N":"9118","MAPPING1H":"9118"},{"SYMBOLID":"O*S*N-----*****","DESCRIPTION":"Palace/Presidential Residence","MAPPING1U":"9119","MAPPING1F":"9119","MAPPING1N":"9119","MAPPING1H":"9119"},{"SYMBOLID":"O*Q*------*****","DESCRIPTION":"Equipment/Weapons"},{"SYMBOLID":"O*Q*A-----*****","DESCRIPTION":"Weapons Found","MAPPING1U":"9121","MAPPING1F":"9121","MAPPING1N":"9121","MAPPING1H":"9121"},{"SYMBOLID":"O*Q*B-----*****","DESCRIPTION":"Weapons Cache","MAPPING1U":"9122","MAPPING1F":"9122","MAPPING1N":"9122","MAPPING1H":"9122"},{"SYMBOLID":"O*Q*C-----*****","DESCRIPTION":"Weapons Confiscated","MAPPING1U":"9123","MAPPING1F":"9123","MAPPING1N":"9123","MAPPING1H":"9123"},{"SYMBOLID":"O*Q*D-----*****","DESCRIPTION":"Weapons Sale","MAPPING1U":"9124","MAPPING1F":"9124","MAPPING1N":"9124","MAPPING1H":"9124"},{"SYMBOLID":"O*Q*E-----*****","DESCRIPTION":"Weapons Market","MAPPING1U":"9125","MAPPING1F":"9125","MAPPING1N":"9125","MAPPING1H":"9125"},{"SYMBOLID":"O*Q*F-----*****","DESCRIPTION":"Chem/Bio Weapons Cache","MAPPING1U":"9126","MAPPING1F":"9126","MAPPING1N":"9126","MAPPING1H":"9126"},{"SYMBOLID":"O*Q*G-----*****","DESCRIPTION":"Improvised Explosive Device (IED)","MAPPING1U":"9127","MAPPING1F":"9127","MAPPING1N":"9127","MAPPING1H":"9127"},{"SYMBOLID":"O*Q*H-----*****","DESCRIPTION":"Unexploded Ordnance (UXO)","MAPPING1U":"9128","MAPPING1F":"9128","MAPPING1N":"9128","MAPPING1H":"9128"},{"SYMBOLID":"O*Q*I-----*****","DESCRIPTION":"Horses","MAPPING1U":"9129","MAPPING1F":"9129","MAPPING1N":"9129","MAPPING1H":"9129"},{"SYMBOLID":"O*Q*J-----*****","DESCRIPTION":"Camels","MAPPING1U":"9130","MAPPING1F":"9130","MAPPING1N":"9130","MAPPING1H":"9130"},{"SYMBOLID":"O*Q*K-----*****","DESCRIPTION":"Donkeys","MAPPING1U":"9131","MAPPING1F":"9131","MAPPING1N":"9131","MAPPING1H":"9131"},{"SYMBOLID":"E*-*------*****","DESCRIPTION":"Emergency Management Symbols"},{"SYMBOLID":"E*I*------*****","DESCRIPTION":"Incident"},{"SYMBOLID":"E*I*A-----*****","DESCRIPTION":"Civil Disturbance Incident","MAPPING1U":"5000","MAPPING1F":"5000","MAPPING1N":"5000","MAPPING1H":"5000"},{"SYMBOLID":"E*I*AC----*****","DESCRIPTION":"Civil Rioting","MAPPING1U":"5001","MAPPING1F":"5001","MAPPING1N":"5001","MAPPING1H":"5001"},{"SYMBOLID":"E*I*B-----*****","DESCRIPTION":"Criminal Activity Incident","MAPPING1U":"5002","MAPPING1F":"5002","MAPPING1N":"5002","MAPPING1H":"5002"},{"SYMBOLID":"E*I*BC----*****","DESCRIPTION":"Explosion (Bomb)","MAPPING1U":"5004","MAPPING1F":"5004","MAPPING1N":"5004","MAPPING1H":"5004"},{"SYMBOLID":"E*I*BD----*****","DESCRIPTION":"Looting","MAPPING1U":"5005","MAPPING1F":"5005","MAPPING1N":"5005","MAPPING1H":"5005"},{"SYMBOLID":"E*I*C-----*****","DESCRIPTION":"Fire Incident"},{"SYMBOLID":"E*I*D-----*****","DESCRIPTION":"Hazardous Materiel Incident"},{"SYMBOLID":"E*I*E-----*****","DESCRIPTION":"Air Incident"},{"SYMBOLID":"E*I*F-----*****","DESCRIPTION":"Marine Incident"},{"SYMBOLID":"E*I*G-----*****","DESCRIPTION":"Rail Incident"},{"SYMBOLID":"E*I*H-----*****","DESCRIPTION":"Vehicle Incident"},{"SYMBOLID":"E*I*HA----*****","DESCRIPTION":"Vehicle Accident","MAPPING1U":"5061","MAPPING1F":"5061","MAPPING1N":"5061","MAPPING1H":"5061"},{"SYMBOLID":"E*N*------*****","DESCRIPTION":"Natural Events"},{"SYMBOLID":"E*O*------*****","DESCRIPTION":"Operations"},{"SYMBOLID":"E*O*D-----*****","DESCRIPTION":"Law Enforcement Operation"},{"SYMBOLID":"E*O*DJ----*****","DESCRIPTION":"Police"},{"SYMBOLID":"E*O*DJC---*****","DESCRIPTION":"Police Installation","MAPPING1U":"5251","MAPPING1F":"5251","MAPPING1N":"5251","MAPPING1H":"5251"},{"SYMBOLID":"E*O*DK----*****","DESCRIPTION":"Prison","MAPPING1U":"5252","MAPPING1F":"5252","MAPPING1N":"5252","MAPPING1H":"5252","MAPPING2":"5253","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"E*F*------*****","DESCRIPTION":"Infrastructure"},{"SYMBOLID":"E*F*I-----*****","DESCRIPTION":"Public Venues Infrastructure"},{"SYMBOLID":"E*F*ID----*****","DESCRIPTION":"Religious Institution","MAPPING1U":"5349","MAPPING1F":"5349","MAPPING1N":"5349","MAPPING1H":"5349","MAPPING2":"5350","MAPPING2COLOR":"#FFFFFF"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.UnitConstantsB={"UNITCONSTANTS":{"SYMBOL":[{"SYMBOLID":"S***------*****","DESCRIPTION":"Warfighting Symbology","DRAWCATEGORY":"0","HIERARCHY":"1.X","ALPHAHIERARCHY":"WAR"},{"SYMBOLID":"S*P*------*****","DESCRIPTION":"Space Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.1","ALPHAHIERARCHY":"WAR.SPC","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*P*S-----*****","DESCRIPTION":"Satellite","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.1","ALPHAHIERARCHY":"WAR.SPC.SAT","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*V-----*****","DESCRIPTION":"Crewed Space Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.2","ALPHAHIERARCHY":"WAR.SPC.CSV","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*T-----*****","DESCRIPTION":"Space Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.3","ALPHAHIERARCHY":"WAR.SPC.SST","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*L-----*****","DESCRIPTION":"Space Launch Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.4","ALPHAHIERARCHY":"WAR.SPC.SLV","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*A*------*****","DESCRIPTION":"Air Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.2","ALPHAHIERARCHY":"WAR.AIRTRK","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*A*M-----*****","DESCRIPTION":"Military","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*MF----*****","DESCRIPTION":"Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*MFB---*****","DESCRIPTION":"Fixed Wing Bomber","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.BMB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFF---*****","DESCRIPTION":"Fixed Wing Fighter","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.FTR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFFI--*****","DESCRIPTION":"Fixed Wing Interceptor","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.FTR.INCR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Fighter"},{"SYMBOLID":"S*A*MFT---*****","DESCRIPTION":"Fixed Wing Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNE","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFA---*****","DESCRIPTION":"Attack/Strike","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ATK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFL---*****","DESCRIPTION":"Fixed Wing VSTOL","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.VSTOL","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFK---*****","DESCRIPTION":"Fixed Wing Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFKB--*****","DESCRIPTION":"Fixed Wing Tanker Boom-Only","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK.BOOM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Tanker"},{"SYMBOLID":"S*A*MFKD--*****","DESCRIPTION":"Fixed Wing Tanker Drouge-Only","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK.DROG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Tanker"},{"SYMBOLID":"S*A*MFC---*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Transport)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFCL--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.LIT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFCM--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.MDM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFCH--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.HVY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFJ---*****","DESCRIPTION":"Fixed Wing ECM/Jammer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFO---*****","DESCRIPTION":"Fixed Wing MEDEVAC","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFR---*****","DESCRIPTION":"Fixed Wing Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFRW--*****","DESCRIPTION":"Fixed Wing Airborne Early Warning (AEW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.ABNEW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFRZ--*****","DESCRIPTION":"Fixed Wing Electronic Surveillance Measures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.ESM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFRX--*****","DESCRIPTION":"Fixed Wing Photographic","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.PHG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFP---*****","DESCRIPTION":"Fixed Wing Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFPN--*****","DESCRIPTION":"Patrol Antisurface Warfare (ASUW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT.ASUW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Patrol"},{"SYMBOLID":"S*A*MFPM--*****","DESCRIPTION":"Fixed Wing Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Patrol"},{"SYMBOLID":"S*A*MFU---*****","DESCRIPTION":"Fixed Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFUL--*****","DESCRIPTION":"Fixed Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.LIT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFUM--*****","DESCRIPTION":"Fixed Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.MDM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFUH--*****","DESCRIPTION":"Fixed Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.HVY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFY---*****","DESCRIPTION":"Fixed Wing Communications (C3I)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.COMM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFH---*****","DESCRIPTION":"Fixed Wing Combat Search and Rescue (CSAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFD---*****","DESCRIPTION":"Fixed Wing Airborne Command Post (C2)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.15","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFQ---*****","DESCRIPTION":"Drone (RPV/UAV) Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFQA--*****","DESCRIPTION":"Drone Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ATK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQB--*****","DESCRIPTION":"Drone Bomber","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.BMB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQC--*****","DESCRIPTION":"Drone Cargo","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.CGO","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQD--*****","DESCRIPTION":"Drone (RPV/UAV) Airborne Command Post","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQF--*****","DESCRIPTION":"Drone Fighter","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.FTR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQH--*****","DESCRIPTION":"Search & Rescue (CSAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQJ--*****","DESCRIPTION":"Drone Electronic Countermeasures (Jammer)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQK--*****","DESCRIPTION":"Drone Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.TNK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQL--*****","DESCRIPTION":"Drone Vstol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.VSTOL","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQM--*****","DESCRIPTION":"Drone Special Operations Forces (SOF)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.SOF","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQI--*****","DESCRIPTION":"Drone Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQN--*****","DESCRIPTION":"Drone Anti-Surface Warfare (ASUW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ASUW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQP--*****","DESCRIPTION":"Drone Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.PAT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQR--*****","DESCRIPTION":"Drone Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQRW-*****","DESCRIPTION":"Drone Airborne Early Warning (AEW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.ABNEW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQRZ-*****","DESCRIPTION":"Drone Electronic Surveillance Measures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.ESM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQRX-*****","DESCRIPTION":"Drone Photographic","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.PHG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQS--*****","DESCRIPTION":"Drone Anti-Submarine Warfare (ASW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.15","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ASBW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQT--*****","DESCRIPTION":"Drone Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.16","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.TNE","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQU--*****","DESCRIPTION":"Drone Utility Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.17","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.UTY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQY--*****","DESCRIPTION":"Drone Communications (C3I)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.18","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.COMM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQO--*****","DESCRIPTION":"Drone Medevac","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.19","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFS---*****","DESCRIPTION":"Antisubmarine Warfare (ASW) Carrier Based","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.17","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ASBWCB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFM---*****","DESCRIPTION":"Fixed Wing Special Operations Forces (SOF)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.18","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.SOF","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MH----*****","DESCRIPTION":"Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*MHA---*****","DESCRIPTION":"Rotary Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ATK","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHS---*****","DESCRIPTION":"Antisubmarine Warfare/MPA ROTARY WING","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ASBW","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHU---*****","DESCRIPTION":"Rotary Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHUL--*****","DESCRIPTION":"Rotary Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.LIT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHUM--*****","DESCRIPTION":"Rotary Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.MDM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHUH--*****","DESCRIPTION":"Rotary Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.HVY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHI---*****","DESCRIPTION":"Rotary Wing Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHH---*****","DESCRIPTION":"Rotary Wing Combat Search and Rescue(Military)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHR---*****","DESCRIPTION":"Rotary Wing Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.RECON","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHQ---*****","DESCRIPTION":"Drone (RPV/UAV) Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.DRN","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHC---*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Transport)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHCL--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.LIT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHCM--*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.MDM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHCH--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.HVY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHT---*****","DESCRIPTION":"Rotary Wing Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.TNE","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHO---*****","DESCRIPTION":"Rotary Wing MEDEVAC","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHM---*****","DESCRIPTION":"Rotary Wing Special Operations Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.SOF","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHD---*****","DESCRIPTION":"Rotary Wing Airborne Command Post","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHK---*****","DESCRIPTION":"Rotary Wing Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.TNK","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHJ---*****","DESCRIPTION":"Rotary Wing ECM/Jammer(TANKER)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ECM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*ML----*****","DESCRIPTION":"Military Aircraft Lighter Than Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.LTA","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*W-----*****","DESCRIPTION":"Air Track Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*WM----*****","DESCRIPTION":"Missile In Flight","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF","PATH":"Warfighting Symbology/Air Track/Air Track Weapon"},{"SYMBOLID":"S*A*WMS---*****","DESCRIPTION":"Surface Launched Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMSS--*****","DESCRIPTION":"Surface to Surface Missile (SSM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SSM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSA--*****","DESCRIPTION":"Surface To Air Missile (SAM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SAM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSU--*****","DESCRIPTION":"Surface to Subsurface Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SSUM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSB--*****","DESCRIPTION":"Anti-Ballistic Missile (ABM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.ABM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMA---*****","DESCRIPTION":"Air Launched Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMAS--*****","DESCRIPTION":"Air To Surface Missile (ASM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.ASM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMAA--*****","DESCRIPTION":"Air To Air Missile (AAM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.AAM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMAP--*****","DESCRIPTION":"Air to Space Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.ASPC","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMU---*****","DESCRIPTION":"Subsurface To Surface Missile (S/SSM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SBSM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMCM--*****","DESCRIPTION":"Cruise Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.CM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMB---*****","DESCRIPTION":"Ballistic Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.5","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.BLST","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WD----*****","DESCRIPTION":"Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.DCY","PATH":"Warfighting Symbology/Air Track/Weapon"},{"SYMBOLID":"S*A*WB----*****","DESCRIPTION":"Bomb","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.BM","PATH":"Warfighting Symbology/Air Track/Weapon"},{"SYMBOLID":"S*A*C-----*****","DESCRIPTION":"Civil Aircraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.CVL","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*CF----*****","DESCRIPTION":"Civil Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.1","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.FIXD","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*A*CH----*****","DESCRIPTION":"Civil Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.2","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.ROT","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*A*CL----*****","DESCRIPTION":"Civil Aircraft Lighter Than Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.3","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.LTA","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*G*------*****","DESCRIPTION":"Ground Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.3","ALPHAHIERARCHY":"WAR.GRDTRK","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*G*U-----*****","DESCRIPTION":"Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*UC----*****","DESCRIPTION":"Combat","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*UCD---*****","DESCRIPTION":"Air Defense","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCDS--*****","DESCRIPTION":"Short Range","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDSC-*****","DESCRIPTION":"Chaparral","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.CPL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDSS-*****","DESCRIPTION":"Stinger","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.STG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDSV-*****","DESCRIPTION":"Vulcan","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.VUL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDM--*****","DESCRIPTION":"Air Defense Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDML-*****","DESCRIPTION":"Air Defense Missile Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDMLA*****","DESCRIPTION":"Air Defense Missile Motorized (Avenger)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.LIT.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/Air Defense Missile Light"},{"SYMBOLID":"S*G*UCDMM-*****","DESCRIPTION":"Air Defense Missile Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDMH-*****","DESCRIPTION":"Air Defense Missile Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDH--*****","DESCRIPTION":"H/MAD","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDHH-*****","DESCRIPTION":"Hawk","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD.HWK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/H and MAD"},{"SYMBOLID":"S*G*UCDHP-*****","DESCRIPTION":"Patriot","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD.PATT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/H and MAD"},{"SYMBOLID":"S*G*UCDG--*****","DESCRIPTION":"Gun Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.GUNUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDC--*****","DESCRIPTION":"Air Defense Composite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.CMPS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDT--*****","DESCRIPTION":"Targeting Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.TGTGUT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDO--*****","DESCRIPTION":"Theater Missile Defense Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.TMDU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCA---*****","DESCRIPTION":"Armor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCAT--*****","DESCRIPTION":"Armor Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor"},{"SYMBOLID":"S*G*UCATA-*****","DESCRIPTION":"Armor Track Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATW-*****","DESCRIPTION":"Armor Track Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATWR*****","DESCRIPTION":"Armor Track Amphibious Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.AMP.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track/Armor Track Amphibious"},{"SYMBOLID":"S*G*UCATL-*****","DESCRIPTION":"Armor Track, Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATM-*****","DESCRIPTION":"Armor Track, Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATH-*****","DESCRIPTION":"Armor Track, Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATR-*****","DESCRIPTION":"Armor Track, Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCAW--*****","DESCRIPTION":"Armor, Wheeled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor"},{"SYMBOLID":"S*G*UCAWS-*****","DESCRIPTION":"Armor, Wheeled Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWA-*****","DESCRIPTION":"Armor, Wheeled Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWW-*****","DESCRIPTION":"Armor, Wheeled Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWWR*****","DESCRIPTION":"Armor, Wheeled Amphibious Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AMP.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled/Armor, Wheeled Amphibious"},{"SYMBOLID":"S*G*UCAWL-*****","DESCRIPTION":"Armor, Wheeled Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWM-*****","DESCRIPTION":"Armor, Wheeled Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWH-*****","DESCRIPTION":"Armor, Wheeled Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWR-*****","DESCRIPTION":"Armor, Wheeled Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAA--*****","DESCRIPTION":"Anti Armor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCAAD-*****","DESCRIPTION":"Anti Armor Dismounted","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAL-*****","DESCRIPTION":"Anti Armor Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAM-*****","DESCRIPTION":"Anti Armor Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAS-*****","DESCRIPTION":"Anti Armor Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAU-*****","DESCRIPTION":"Anti Armor Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAC-*****","DESCRIPTION":"Anti Armor Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAA-*****","DESCRIPTION":"Anti Armor Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAAT*****","DESCRIPTION":"Anti Armor Armored Tracked","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.TKD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAAW*****","DESCRIPTION":"Anti Armor Armored Wheeled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.WHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAAS*****","DESCRIPTION":"Anti Armor Armored Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAO-*****","DESCRIPTION":"Anti Armor Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAOS*****","DESCRIPTION":"Anti Armor Motorized Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MOT.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Motorized"},{"SYMBOLID":"S*G*UCV---*****","DESCRIPTION":"Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCVF--*****","DESCRIPTION":"Aviation Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVFU-*****","DESCRIPTION":"Utility Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.UTY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVFA-*****","DESCRIPTION":"Fixed Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.ATK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVFR-*****","DESCRIPTION":"Recon Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVR--*****","DESCRIPTION":"Aviation Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVRA-*****","DESCRIPTION":"Attack Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.ATK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRS-*****","DESCRIPTION":"Scout Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.SCUT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRW-*****","DESCRIPTION":"Antisubmarine Warfare Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.ASBW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRU-*****","DESCRIPTION":"Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRUL*****","DESCRIPTION":"Light Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUM*****","DESCRIPTION":"Medium Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUH*****","DESCRIPTION":"Heavy Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUC*****","DESCRIPTION":"C2 Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.C2","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRUE*****","DESCRIPTION":"Medevac Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.MEDV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRM-*****","DESCRIPTION":"Mine Countermeasure Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.MNECM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVS--*****","DESCRIPTION":"Search and Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.SAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVC--*****","DESCRIPTION":"Aviation Composite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.CMPS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVV--*****","DESCRIPTION":"Vertical/Short Takeoff And Landing (V/Stol)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.VSTOL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVU--*****","DESCRIPTION":"Unmanned Aerial Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVUF-*****","DESCRIPTION":"Unmanned Aerial Vehicle Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV.FIXD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Unmanned Aerial Vehicle"},{"SYMBOLID":"S*G*UCVUR-*****","DESCRIPTION":"Unmanned Aerial Vehicle Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV.ROT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Unmanned Aerial Vehicle"},{"SYMBOLID":"S*G*UCI---*****","DESCRIPTION":"Infantry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCIL--*****","DESCRIPTION":"Infantry Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIM--*****","DESCRIPTION":"Infantry Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIO--*****","DESCRIPTION":"Infantry Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIA--*****","DESCRIPTION":"Infantry Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIS--*****","DESCRIPTION":"Infantry Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIZ--*****","DESCRIPTION":"Infantry Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIN--*****","DESCRIPTION":"Infantry Naval","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.NAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCII--*****","DESCRIPTION":"Infantry Fighting Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.INFFV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIC--*****","DESCRIPTION":"Infantry Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCE---*****","DESCRIPTION":"Engineer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCEC--*****","DESCRIPTION":"Engineer Combat","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer"},{"SYMBOLID":"S*G*UCECS-*****","DESCRIPTION":"Engineer Combat Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECA-*****","DESCRIPTION":"Engineer Combat Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECC-*****","DESCRIPTION":"Engineer Combat Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECL-*****","DESCRIPTION":"Engineer Combat Light (Sapper)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECM-*****","DESCRIPTION":"Engineer Combat Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECH-*****","DESCRIPTION":"Engineer Combat Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECT-*****","DESCRIPTION":"Engineer Combat Mechanized (Track)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECW-*****","DESCRIPTION":"Engineer Combat Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECO-*****","DESCRIPTION":"Engineer Combat Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECR-*****","DESCRIPTION":"Engineer Combat Recon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCEN--*****","DESCRIPTION":"Engineer Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CSN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer"},{"SYMBOLID":"S*G*UCENN-*****","DESCRIPTION":"Engineer Naval Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CSN.NAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Construction"},{"SYMBOLID":"S*G*UCF---*****","DESCRIPTION":"Field Artillery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCFH--*****","DESCRIPTION":"Howitzer/Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFHE-*****","DESCRIPTION":"Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.SPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHS-*****","DESCRIPTION":"Howitzer/Gun Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHA-*****","DESCRIPTION":"Howitzer/Gun Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHC-*****","DESCRIPTION":"Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHO-*****","DESCRIPTION":"Howitzer/Gun Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHL-*****","DESCRIPTION":"Howitzer/Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHM-*****","DESCRIPTION":"Howitzer/Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHH-*****","DESCRIPTION":"Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHX-*****","DESCRIPTION":"Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFR--*****","DESCRIPTION":"Rocket","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFRS-*****","DESCRIPTION":"Rocket Single Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket"},{"SYMBOLID":"S*G*UCFRSS*****","DESCRIPTION":"Single Rocket Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRSPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRSR*****","DESCRIPTION":"Single Rocket Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRST*****","DESCRIPTION":"Single Rocket Towed","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRTOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRM-*****","DESCRIPTION":"Multi Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket"},{"SYMBOLID":"S*G*UCFRMS*****","DESCRIPTION":"Multi Rocket Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRSPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFRMR*****","DESCRIPTION":"Multi Rocket Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFRMT*****","DESCRIPTION":"Multi Rocket Towed","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRTOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFT--*****","DESCRIPTION":"Target Acquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFTR-*****","DESCRIPTION":"Target Acquisition Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.RAD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTS-*****","DESCRIPTION":"Sound","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.SND","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTF-*****","DESCRIPTION":"Flash (Optical)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.FLH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTC-*****","DESCRIPTION":"Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTCD*****","DESCRIPTION":"Dismounted Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition/Colt and Fist"},{"SYMBOLID":"S*G*UCFTCM*****","DESCRIPTION":"Tracked Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT.TKD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition/Colt and Fist"},{"SYMBOLID":"S*G*UCFTA-*****","DESCRIPTION":"Anglico","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.ANG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFM--*****","DESCRIPTION":"Field Artillery Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFMS-*****","DESCRIPTION":"Self-Propelled (SP) Tracked Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.SPDTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMW-*****","DESCRIPTION":"SP Wheeled Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.SPDWHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMT-*****","DESCRIPTION":"Towed Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMTA*****","DESCRIPTION":"Towed Airborne Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTS*****","DESCRIPTION":"Towed Air Assault Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTC*****","DESCRIPTION":"Towed Arctic Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTO*****","DESCRIPTION":"Towed Mountain Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFML-*****","DESCRIPTION":"Amphibious Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFS--*****","DESCRIPTION":"Artillery Survey","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFSS-*****","DESCRIPTION":"Artillery Survey Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSA-*****","DESCRIPTION":"Artillery Survey Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSL-*****","DESCRIPTION":"Artillery Survey Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSO-*****","DESCRIPTION":"Artillery Survey Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFO--*****","DESCRIPTION":"Field Artillery Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFOS-*****","DESCRIPTION":"Air Assault Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorologicall"},{"SYMBOLID":"S*G*UCFOA-*****","DESCRIPTION":"Airborne Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCFOL-*****","DESCRIPTION":"Light Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCFOO-*****","DESCRIPTION":"Mountain Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCR---*****","DESCRIPTION":"Combat Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCRH--*****","DESCRIPTION":"Reconnaissance Horse","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.HRE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRV--*****","DESCRIPTION":"Reconnaissance Cavalry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRVA-*****","DESCRIPTION":"Reconnaissance Cavalry Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.ARMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVM-*****","DESCRIPTION":"Reconnaissance Cavalry Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVG-*****","DESCRIPTION":"Reconnaissance Cavalry Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.GRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVO-*****","DESCRIPTION":"Reconnaissance Cavalry Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.AIR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRC--*****","DESCRIPTION":"Reconnaissance Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRS--*****","DESCRIPTION":"Reconnaissance Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRA--*****","DESCRIPTION":"Reconnaissance Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRO--*****","DESCRIPTION":"Reconnaissance Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRL--*****","DESCRIPTION":"Reconnaissance Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRR--*****","DESCRIPTION":"Reconnaissance Marine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRRD-*****","DESCRIPTION":"Reconnaissance Marine Division","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.DIV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRRF-*****","DESCRIPTION":"Reconnaissance Marine Force","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.FOR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRRL-*****","DESCRIPTION":"Reconnaissance Marine Light Armored (LAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.LAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRX--*****","DESCRIPTION":"Reconnaissance Long Range Surveillance (LRS)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.LRS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCM---*****","DESCRIPTION":"Missile (Surf-Surf)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCMT--*****","DESCRIPTION":"Missile (Surf-Surf) Tactical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL.TAC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Missile (Surf-Surf)"},{"SYMBOLID":"S*G*UCMS--*****","DESCRIPTION":"Missile (Surf-Surf) Strategic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL.STGC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Missile (Surf-Surf)"},{"SYMBOLID":"S*G*UCS---*****","DESCRIPTION":"Internal Security Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCSW--*****","DESCRIPTION":"Internal Security Forces Riverine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.RIV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSG--*****","DESCRIPTION":"Internal Security Forces Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSGD-*****","DESCRIPTION":"Internal Security Forces Dismounted","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSGM-*****","DESCRIPTION":"Internal Security Forces Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSGA-*****","DESCRIPTION":"Internal Security Forces Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSM--*****","DESCRIPTION":"Internal Security Forces Wheeled Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.WHMECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSR--*****","DESCRIPTION":"Internal Security Forces Railroad","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.RALRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSA--*****","DESCRIPTION":"Internal Security Forces Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCL---*****","DESCRIPTION":"Surveillance Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.SVL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UU----*****","DESCRIPTION":"Combat Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*UUA---*****","DESCRIPTION":"Combat Support NBC","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUAC--*****","DESCRIPTION":"Combat Support Chemical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUACC-*****","DESCRIPTION":"Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACCK*****","DESCRIPTION":"Mechanized Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke and Decon"},{"SYMBOLID":"S*G*UUACCM*****","DESCRIPTION":"Motorized Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke and Decon"},{"SYMBOLID":"S*G*UUACS-*****","DESCRIPTION":"Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACSM*****","DESCRIPTION":"Motorized Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke"},{"SYMBOLID":"S*G*UUACSA*****","DESCRIPTION":"Armor Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK.ARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke"},{"SYMBOLID":"S*G*UUACR-*****","DESCRIPTION":"Chemical Recon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACRW*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON.WARMVH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Chemical Recon"},{"SYMBOLID":"S*G*UUACRS*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle Reconnaissance Surveillance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON.WAVS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Chemical Recon"},{"SYMBOLID":"S*G*UUAN--*****","DESCRIPTION":"Combat Support NBC Nuclear","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.NUC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUAB--*****","DESCRIPTION":"Combat Support NBC Biological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.BIO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUABR-*****","DESCRIPTION":"Recon Equipped","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.BIO.RECEQP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support NBC Biological"},{"SYMBOLID":"S*G*UUAD--*****","DESCRIPTION":"NBC Decontamination","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.DECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUM---*****","DESCRIPTION":"Military Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUMA--*****","DESCRIPTION":"Aerial Exploitation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.AEREXP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMS--*****","DESCRIPTION":"Signal Intelligence (SIGINT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMSE-*****","DESCRIPTION":"Electronic Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)"},{"SYMBOLID":"S*G*UUMSEA*****","DESCRIPTION":"Armored Wheeled Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.ARMWVH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSED*****","DESCRIPTION":"Direction Finding","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.DFN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEI*****","DESCRIPTION":"Intercept","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.INC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEJ*****","DESCRIPTION":"Jamming","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.JMG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSET*****","DESCRIPTION":"Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEC*****","DESCRIPTION":"Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMC--*****","DESCRIPTION":"Counter Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.CINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMR--*****","DESCRIPTION":"Counter Intelligence Surveillance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMRG-*****","DESCRIPTION":"Ground Surveillance Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.GRDSR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMRS-*****","DESCRIPTION":"Surveillance Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.SNS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMRSS*****","DESCRIPTION":"Sensor SCM","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.SNS.SCM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance/Surveillance Sensor"},{"SYMBOLID":"S*G*UUMRX-*****","DESCRIPTION":"Ground Station Module","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.GRDSM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMMO-*****","DESCRIPTION":"Surveillance Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.METO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMO--*****","DESCRIPTION":"Military Intelligence Operations","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.OPN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMT--*****","DESCRIPTION":"Tactical Exploit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.TACEXP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMQ--*****","DESCRIPTION":"Interrogation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.INTGN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMJ--*****","DESCRIPTION":"Joint Intelligence Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.JINTCT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUL---*****","DESCRIPTION":"Law Enforcement Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UULS--*****","DESCRIPTION":"Shore Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.SHRPAT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULM--*****","DESCRIPTION":"Military Police","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.MILP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULC--*****","DESCRIPTION":"Civilian Law Enforcement","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.CLE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULF--*****","DESCRIPTION":"Security Police (Air)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.SECPOL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULD--*****","DESCRIPTION":"Central Intelligence Division (CID)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.CID","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UUS---*****","DESCRIPTION":"Signal Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUSA--*****","DESCRIPTION":"Area","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.ARA","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSC--*****","DESCRIPTION":"Communication Configured Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.COMCP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSCL-*****","DESCRIPTION":"Large Communication Configured Package (LCCP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.COMCP.LCCP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Communication Configured Package"},{"SYMBOLID":"S*G*UUSO--*****","DESCRIPTION":"Command Operations","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.CMDOPN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSF--*****","DESCRIPTION":"Forward Communications","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.FWDCOM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSM--*****","DESCRIPTION":"Multiple Subscriber Element","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSMS-*****","DESCRIPTION":"Small Extension Node","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.SEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSML-*****","DESCRIPTION":"Large Extension Node","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.LEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSMN-*****","DESCRIPTION":"Node Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.NODCTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSR--*****","DESCRIPTION":"Radio Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSRS-*****","DESCRIPTION":"Tactical Satellite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.TACSAT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSRT-*****","DESCRIPTION":"Teletype Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.TTYCTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSRW-*****","DESCRIPTION":"Relay","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.RLY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSS--*****","DESCRIPTION":"Signal Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.SIGSUP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSW--*****","DESCRIPTION":"Telephone Switch","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.PHOSWT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSX--*****","DESCRIPTION":"Electronic Ranging","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.ECRG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUI---*****","DESCRIPTION":"Information Warfare Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.IWU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUP---*****","DESCRIPTION":"Landing Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LNDSUP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUE---*****","DESCRIPTION":"Explosive Ordnance Disposal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.EOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*US----*****","DESCRIPTION":"Combat Service Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*USA---*****","DESCRIPTION":"Administrative (ADMIN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USAT--*****","DESCRIPTION":"Admin Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAC--*****","DESCRIPTION":"Admin Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAJ--*****","DESCRIPTION":"Judge Advocate General (JAG)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAJT-*****","DESCRIPTION":"JAG Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Judge Advocate General (JAG)"},{"SYMBOLID":"S*G*USAJC-*****","DESCRIPTION":"JAG Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Judge Advocate General (JAG)"},{"SYMBOLID":"S*G*USAO--*****","DESCRIPTION":"Postal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAOT-*****","DESCRIPTION":"Postal Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Postal"},{"SYMBOLID":"S*G*USAOC-*****","DESCRIPTION":"Postal Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Postal"},{"SYMBOLID":"S*G*USAF--*****","DESCRIPTION":"Finance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAFT-*****","DESCRIPTION":"Finance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Finance"},{"SYMBOLID":"S*G*USAFC-*****","DESCRIPTION":"Finance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Finance"},{"SYMBOLID":"S*G*USAS--*****","DESCRIPTION":"Personnel Services","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAST-*****","DESCRIPTION":"Personnel Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Personnel Services"},{"SYMBOLID":"S*G*USASC-*****","DESCRIPTION":"Personnel Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Personnel Services"},{"SYMBOLID":"S*G*USAM--*****","DESCRIPTION":"Mortuary/Graves Registry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAMT-*****","DESCRIPTION":"Mortuary/Graves Registry Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Mortuary and Graves Registry"},{"SYMBOLID":"S*G*USAMC-*****","DESCRIPTION":"Mortuary/Graves Registry Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Mortuary and Graves Registry"},{"SYMBOLID":"S*G*USAR--*****","DESCRIPTION":"Religious/Chaplain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USART-*****","DESCRIPTION":"Religious/Chaplain Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Religious and Chaplain"},{"SYMBOLID":"S*G*USARC-*****","DESCRIPTION":"Religious/Chaplain Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Religious and Chaplain"},{"SYMBOLID":"S*G*USAP--*****","DESCRIPTION":"Public Affairs","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAPT-*****","DESCRIPTION":"Public Affairs Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPC-*****","DESCRIPTION":"Public Affairs Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPB-*****","DESCRIPTION":"Public Affairs Broadcast","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPBT*****","DESCRIPTION":"Public Affairs Broadcast Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Broadcast"},{"SYMBOLID":"S*G*USAPBC*****","DESCRIPTION":"Public Affairs Broadcast Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Broadcast"},{"SYMBOLID":"S*G*USAPM-*****","DESCRIPTION":"Public Affairs Joint Information Bureau (JIB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPMT*****","DESCRIPTION":"Public Affairs JIB Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Joint Information Bureau (JIB)"},{"SYMBOLID":"S*G*USAPMC*****","DESCRIPTION":"Public Affairs JIB Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Joint Information Bureau (JIB)"},{"SYMBOLID":"S*G*USAX--*****","DESCRIPTION":"Replacement Holding Unit (RHU)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAXT-*****","DESCRIPTION":"RHU Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Replacement Holding Unit (RHU)"},{"SYMBOLID":"S*G*USAXC-*****","DESCRIPTION":"RHU Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Replacement Holding Unit (RHU)"},{"SYMBOLID":"S*G*USAL--*****","DESCRIPTION":"Labor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USALT-*****","DESCRIPTION":"Labor Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Labor"},{"SYMBOLID":"S*G*USALC-*****","DESCRIPTION":"Labor Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Labor"},{"SYMBOLID":"S*G*USAW--*****","DESCRIPTION":"Morale, Welfare, Recreation (MWR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAWT-*****","DESCRIPTION":"MWR Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Morale, Welfare, Recreation (MWR)"},{"SYMBOLID":"S*G*USAWC-*****","DESCRIPTION":"MWR Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Morale, Welfare, Recreation (MWR)"},{"SYMBOLID":"S*G*USAQ--*****","DESCRIPTION":"Quartermaster (Supply)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAQT-*****","DESCRIPTION":"Quartermaster (Supply) Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Quartermaster (Supply)"},{"SYMBOLID":"S*G*USAQC-*****","DESCRIPTION":"Quartermaster (Supply) Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Quartermaster (Supply)"},{"SYMBOLID":"S*G*USM---*****","DESCRIPTION":"Medical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USMT--*****","DESCRIPTION":"Medical Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMC--*****","DESCRIPTION":"Medical Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMM--*****","DESCRIPTION":"Medical Treatment Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMMT-*****","DESCRIPTION":"Medical Treatment Facility Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Treatment Facility"},{"SYMBOLID":"S*G*USMMC-*****","DESCRIPTION":"Medical Treatment Facility Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Treatment Facility"},{"SYMBOLID":"S*G*USMV--*****","DESCRIPTION":"Medical Veterinary","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMVT-*****","DESCRIPTION":"Medical Veterinary Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Veterinary"},{"SYMBOLID":"S*G*USMVC-*****","DESCRIPTION":"Medical Veterinary Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Veterinary"},{"SYMBOLID":"S*G*USMD--*****","DESCRIPTION":"Medical Dental","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMDT-*****","DESCRIPTION":"Medical Dental Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Dental"},{"SYMBOLID":"S*G*USMDC-*****","DESCRIPTION":"Medical Dental Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Dental"},{"SYMBOLID":"S*G*USMP--*****","DESCRIPTION":"Medical Psychological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMPT-*****","DESCRIPTION":"Medical Psychological Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Psychological"},{"SYMBOLID":"S*G*USMPC-*****","DESCRIPTION":"Medical Psychological Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Psychological"},{"SYMBOLID":"S*G*USS---*****","DESCRIPTION":"Supply","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USST--*****","DESCRIPTION":"Supply Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSC--*****","DESCRIPTION":"Supply Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS1--*****","DESCRIPTION":"Supply Class I","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS1T-*****","DESCRIPTION":"Supply Class I Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class I"},{"SYMBOLID":"S*G*USS1C-*****","DESCRIPTION":"Supply Class I Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class I"},{"SYMBOLID":"S*G*USS2--*****","DESCRIPTION":"Supply Class II","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS2T-*****","DESCRIPTION":"Supply Class II Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class II"},{"SYMBOLID":"S*G*USS2C-*****","DESCRIPTION":"Supply Class II Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class II"},{"SYMBOLID":"S*G*USS3--*****","DESCRIPTION":"Supply Class III","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS3T-*****","DESCRIPTION":"Supply Class III Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3C-*****","DESCRIPTION":"Supply Class III Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3A-*****","DESCRIPTION":"Supply Class III Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3AT*****","DESCRIPTION":"Supply Class III Aviation Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III/Supply Class III Aviation"},{"SYMBOLID":"S*G*USS3AC*****","DESCRIPTION":"Supply Class III Aviation Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III/Supply Class III Aviation"},{"SYMBOLID":"S*G*USS4--*****","DESCRIPTION":"Supply Class IV","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS4T-*****","DESCRIPTION":"Supply Class IV Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IV"},{"SYMBOLID":"S*G*USS4C-*****","DESCRIPTION":"Supply Class IV Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IV"},{"SYMBOLID":"S*G*USS5--*****","DESCRIPTION":"Supply Class V","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS5T-*****","DESCRIPTION":"Supply Class V Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class V"},{"SYMBOLID":"S*G*USS5C-*****","DESCRIPTION":"Supply Class V Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class V"},{"SYMBOLID":"S*G*USS6--*****","DESCRIPTION":"Supply Class VI","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS6T-*****","DESCRIPTION":"Supply Class VI Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VI"},{"SYMBOLID":"S*G*USS6C-*****","DESCRIPTION":"Supply Class VI Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VI"},{"SYMBOLID":"S*G*USS7--*****","DESCRIPTION":"Supply Class VII","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS7T-*****","DESCRIPTION":"Supply Class VII Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VII"},{"SYMBOLID":"S*G*USS7C-*****","DESCRIPTION":"Supply Class VII Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VII"},{"SYMBOLID":"S*G*USS8--*****","DESCRIPTION":"Supply Class VIII","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS8T-*****","DESCRIPTION":"Supply Class VIII Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VIII"},{"SYMBOLID":"S*G*USS8C-*****","DESCRIPTION":"Supply Class VIII Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VIII"},{"SYMBOLID":"S*G*USS9--*****","DESCRIPTION":"Supply Class IX","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS9T-*****","DESCRIPTION":"Supply Class IX Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IX"},{"SYMBOLID":"S*G*USS9C-*****","DESCRIPTION":"Supply Class IX Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IX"},{"SYMBOLID":"S*G*USSX--*****","DESCRIPTION":"Supply Class X","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSXT-*****","DESCRIPTION":"Supply Class X Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class X"},{"SYMBOLID":"S*G*USSXC-*****","DESCRIPTION":"Supply Class X Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class X"},{"SYMBOLID":"S*G*USSL--*****","DESCRIPTION":"Supply Laundry/Bath","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSLT-*****","DESCRIPTION":"Supply Laundry/Bath Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Laundry and Bath"},{"SYMBOLID":"S*G*USSLC-*****","DESCRIPTION":"Supply Laundry/Bath Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Laundry and Bath"},{"SYMBOLID":"S*G*USSW--*****","DESCRIPTION":"Supply Water","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSWT-*****","DESCRIPTION":"Supply Water Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWC-*****","DESCRIPTION":"Supply Water Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWP-*****","DESCRIPTION":"Supply Water Purification","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWPT*****","DESCRIPTION":"Supply Water Purification Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water/Supply Water Purification"},{"SYMBOLID":"S*G*USSWPC*****","DESCRIPTION":"Supply Water Purification Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water/Supply Water Purification"},{"SYMBOLID":"S*G*UST---*****","DESCRIPTION":"Transportation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USTT--*****","DESCRIPTION":"Transportation Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTC--*****","DESCRIPTION":"Transportation Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTM--*****","DESCRIPTION":"Movement Control Center (MCC)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTMT-*****","DESCRIPTION":"MCC Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Movement Control Center (MCC)"},{"SYMBOLID":"S*G*USTMC-*****","DESCRIPTION":"MCC Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Movement Control Center (MCC)"},{"SYMBOLID":"S*G*USTR--*****","DESCRIPTION":"Railhead","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTRT-*****","DESCRIPTION":"Railhead Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Railhead"},{"SYMBOLID":"S*G*USTRC-*****","DESCRIPTION":"Railhead Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Railhead"},{"SYMBOLID":"S*G*USTS--*****","DESCRIPTION":"SPOD/SPOE","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTST-*****","DESCRIPTION":"SPOD/SPOE Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/SPOD and SPOE"},{"SYMBOLID":"S*G*USTSC-*****","DESCRIPTION":"SPOD/SPOE Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/SPOD and SPOE"},{"SYMBOLID":"S*G*USTA--*****","DESCRIPTION":"APOD/APOE","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTAT-*****","DESCRIPTION":"APOD/APOE Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/APOD and APOE"},{"SYMBOLID":"S*G*USTAC-*****","DESCRIPTION":"APOD/APOE Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/APOD and APOE"},{"SYMBOLID":"S*G*USTI--*****","DESCRIPTION":"Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTIT-*****","DESCRIPTION":"Missile Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Missile"},{"SYMBOLID":"S*G*USTIC-*****","DESCRIPTION":"Missile Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Missile"},{"SYMBOLID":"S*G*USX---*****","DESCRIPTION":"Maintenance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USXT--*****","DESCRIPTION":"Maintenance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXC--*****","DESCRIPTION":"Maintenance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXH--*****","DESCRIPTION":"Maintenance Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXHT-*****","DESCRIPTION":"Maintenance Heavy Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Heavy"},{"SYMBOLID":"S*G*USXHC-*****","DESCRIPTION":"Maintenance Heavy Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Heavy"},{"SYMBOLID":"S*G*USXR--*****","DESCRIPTION":"Maintenance Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXRT-*****","DESCRIPTION":"Maintenance Recovery Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Recovery"},{"SYMBOLID":"S*G*USXRC-*****","DESCRIPTION":"Maintenance Recovery Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Recovery"},{"SYMBOLID":"S*G*USXO--*****","DESCRIPTION":"Ordnance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXOT-*****","DESCRIPTION":"Ordnance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOC-*****","DESCRIPTION":"Ordnance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOM-*****","DESCRIPTION":"Ordnance Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOMT*****","DESCRIPTION":"Ordnance Missile Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance/Ordnance Missile"},{"SYMBOLID":"S*G*USXOMC*****","DESCRIPTION":"Ordnance Missile Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance/Ordnance Missile"},{"SYMBOLID":"S*G*USXE--*****","DESCRIPTION":"Electro-Optical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXET-*****","DESCRIPTION":"Electro-Optical Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Electro-Optical"},{"SYMBOLID":"S*G*USXEC-*****","DESCRIPTION":"Electro-Optical Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Electro-Optical"},{"SYMBOLID":"S*G*UH----*****","DESCRIPTION":"Special C2 Headquarters Component","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.C2HQ","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*E-----*****","DESCRIPTION":"Ground Track Equipment","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*EW----*****","DESCRIPTION":"Weapon","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EWM---*****","DESCRIPTION":"Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWMA--*****","DESCRIPTION":"Air Defense (AD) Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMAS-*****","DESCRIPTION":"Short Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMASR*****","DESCRIPTION":"Short Range Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/ShortRange"},{"SYMBOLID":"S*G*EWMASE*****","DESCRIPTION":"Short Range Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/ShortRange"},{"SYMBOLID":"S*G*EWMAI-*****","DESCRIPTION":"Intermediate Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMAIR*****","DESCRIPTION":"Intermediate Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Intermediate Range"},{"SYMBOLID":"S*G*EWMAIE*****","DESCRIPTION":"Intermediate Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Intermediate Range"},{"SYMBOLID":"S*G*EWMAL-*****","DESCRIPTION":"Long Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMALR*****","DESCRIPTION":"Long Range Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Long Range"},{"SYMBOLID":"S*G*EWMALE*****","DESCRIPTION":"Long Range Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Long Range"},{"SYMBOLID":"S*G*EWMAT-*****","DESCRIPTION":"AD Missile Launcher Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMATR*****","DESCRIPTION":"Theater Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Theater"},{"SYMBOLID":"S*G*EWMATE*****","DESCRIPTION":"Theater Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Theater"},{"SYMBOLID":"S*G*EWMS--*****","DESCRIPTION":"Surf-Surf (SS) Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMSS-*****","DESCRIPTION":"Short Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.SHTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMSI-*****","DESCRIPTION":"Intermediate Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.INTMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMSL-*****","DESCRIPTION":"Long Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.LNGR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMT--*****","DESCRIPTION":"Missile Launcher Antitank (AT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMTL-*****","DESCRIPTION":"Missile Launcher AT Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWMTM-*****","DESCRIPTION":"Missile Launcher AT Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWMTH-*****","DESCRIPTION":"Missile Launcher AT Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWS---*****","DESCRIPTION":"Weapon Single Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWSL--*****","DESCRIPTION":"Single Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWSM--*****","DESCRIPTION":"Single Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWSH--*****","DESCRIPTION":"Single Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWX---*****","DESCRIPTION":"Multiple Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWXL--*****","DESCRIPTION":"Multiple Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWXM--*****","DESCRIPTION":"Multiple Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWXH--*****","DESCRIPTION":"Multiple Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWT---*****","DESCRIPTION":"Anti-Tank Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWTL--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.1","ALPHAHIERARCHY":"211SYMBOL UNKNOWN FRIEND NEUTRAL HOSTILEWAR.GRDTRK.EQT.WPN.MRL.HVYWARFIGHTING SYMBOLSGROUND TRACKEQUIPMENTWEAPONMULTIPLE ROCKET LAUNCHERHEAVYHierarchy: 1.X.3.2.1.3.3Framed: FOSUGPEWXH--*****SFGPEWXH--*****SNGPEWXH--*****SHGPEWXH--*****SUGPEWXH--*****SFGPEWXH--*****SNGPEWXH--*****SHGPEWXH--*****WAR.GRDTRK.EQT.WPN.ATRLWARFIGHTING SYMBOLSGROUND TRACKEQUIPMENTWEAPONANTITANK ROCKET LAUNCHERHierarchy: 1.X.3.2.1.4Framed: FOSUGPEWT---*****SFGPEWT---*****SNGPEWT---*****SHGPEWT---*****SUGPEWT---*****SFGPEWT---*****SNGPEWT---*****SHGPEWT---*****WAR.GRDTRK.EQT.WPN.ATRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWTM--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWTH--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWR---*****","DESCRIPTION":"Rifle/Automatic Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Rifle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Cache","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.CACHE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Confiscated","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.CONF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Found","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.FND","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Market","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.MKT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Sale","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.SALE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRL--*****","DESCRIPTION":"Light Machine Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.LMG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWRH--*****","DESCRIPTION":"Heavy Machine Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.HMG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWZ---*****","DESCRIPTION":"Grenade Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWZL--*****","DESCRIPTION":"Grenade Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWZM--*****","DESCRIPTION":"Grenade Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWZH--*****","DESCRIPTION":"Grenade Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWO---*****","DESCRIPTION":"Weapon Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWOL--*****","DESCRIPTION":"Mortar Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWOM--*****","DESCRIPTION":"Mortar Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWOH--*****","DESCRIPTION":"Mortar Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWH---*****","DESCRIPTION":"Howitzer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWHL--*****","DESCRIPTION":"Howitzer Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHLS-*****","DESCRIPTION":"Howitzer Light Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.LIT.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Light"},{"SYMBOLID":"S*G*EWHM--*****","DESCRIPTION":"Howitzer Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHMS-*****","DESCRIPTION":"Howitzer Medium Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.MDM.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Medium"},{"SYMBOLID":"S*G*EWHH--*****","DESCRIPTION":"Howitzer Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHHS-*****","DESCRIPTION":"Howitzer Heavy Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.HVY.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Heavy"},{"SYMBOLID":"S*G*EWG---*****","DESCRIPTION":"Anti-Tank Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWGL--*****","DESCRIPTION":"Anti-Tank Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGM--*****","DESCRIPTION":"Anti-Tank Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGH--*****","DESCRIPTION":"Anti-Tank Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGR--*****","DESCRIPTION":"Anti-Tank Gun Recoilless","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.RECL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWD---*****","DESCRIPTION":"Direct Fire Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWDL--*****","DESCRIPTION":"Direct Fire Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDLS-*****","DESCRIPTION":"Direct Fire Gun Light Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.LIT.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Light"},{"SYMBOLID":"S*G*EWDM--*****","DESCRIPTION":"Direct Fire Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDMS-*****","DESCRIPTION":"Direct Fire Gun Medium Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.MDM.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Medium"},{"SYMBOLID":"S*G*EWDH--*****","DESCRIPTION":"Direct Fire Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDHS-*****","DESCRIPTION":"Direct Fire Gun Heavy Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.HVY.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Heavy"},{"SYMBOLID":"S*G*EWA---*****","DESCRIPTION":"Air Defense Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWAL--*****","DESCRIPTION":"Air Defense Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EWAM--*****","DESCRIPTION":"Air Defense Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EWAH--*****","DESCRIPTION":"Air Defense Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EV----*****","DESCRIPTION":"Ground Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EVA---*****","DESCRIPTION":"Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVAT--*****","DESCRIPTION":"Tank","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVATL-*****","DESCRIPTION":"Tank Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATLR*****","DESCRIPTION":"Tank Light Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.LIT.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Light"},{"SYMBOLID":"S*G*EVATM-*****","DESCRIPTION":"Tank Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATMR*****","DESCRIPTION":"Tank Medium Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.MDM.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Medium"},{"SYMBOLID":"S*G*EVATH-*****","DESCRIPTION":"Tank Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATHR*****","DESCRIPTION":"Tank Heavy Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.HVY.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Heavy"},{"SYMBOLID":"S*G*EVAA--*****","DESCRIPTION":"Armored Personnel Carrier","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMPC","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAAR-*****","DESCRIPTION":"Armored Personnel Carrier Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMPC.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Armored Personnel Carrier"},{"SYMBOLID":"S*G*EVAI--*****","DESCRIPTION":"Armored Infantry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMINF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAC--*****","DESCRIPTION":"C2V/ACV","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.C2V","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAS--*****","DESCRIPTION":"Combat Service Support Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.CSSVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAL--*****","DESCRIPTION":"Light Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.LARMVH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVU---*****","DESCRIPTION":"Utility Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVUB--*****","DESCRIPTION":"Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.BUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUS--*****","DESCRIPTION":"Semi","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUSL-*****","DESCRIPTION":"Semi Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUSM-*****","DESCRIPTION":"Semi Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUSH-*****","DESCRIPTION":"Semi Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUL--*****","DESCRIPTION":"Limited Cross-Country Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.LCCTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUX--*****","DESCRIPTION":"Cross-Country Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.CCTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUR--*****","DESCRIPTION":"Water Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.H2OCRT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUT--*****","DESCRIPTION":"Tow Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUTL-*****","DESCRIPTION":"Tow Truck Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Tow Truck"},{"SYMBOLID":"S*G*EVUTH-*****","DESCRIPTION":"Tow Truck Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Tow Truck"},{"SYMBOLID":"S*G*EVUA--*****","DESCRIPTION":"Ambulance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.AMBLNC","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUAA-*****","DESCRIPTION":"Ambulance Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.AMBLNC.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Ambulance"},{"SYMBOLID":"S*G*EVE---*****","DESCRIPTION":"Engineer Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVEB--*****","DESCRIPTION":"Engineer Vehicle Bridge","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.BRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEE--*****","DESCRIPTION":"Earthmover","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.ERHMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEC--*****","DESCRIPTION":"Construction Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.CSNVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEM--*****","DESCRIPTION":"Mine Laying Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEMV-*****","DESCRIPTION":"Armored Carrier with Volcano","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH.ARMCV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Laying Vehicle"},{"SYMBOLID":"S*G*EVEML-*****","DESCRIPTION":"Truck Mounted with Volcano","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH.TRKMV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Laying Vehicle"},{"SYMBOLID":"S*G*EVEA--*****","DESCRIPTION":"Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEAA-*****","DESCRIPTION":"Armored Mounted Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH.ARMVM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Clearing Vehicle"},{"SYMBOLID":"S*G*EVEAT-*****","DESCRIPTION":"Trailer Mounted Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH.TM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Clearing Vehicle"},{"SYMBOLID":"S*G*EVED--*****","DESCRIPTION":"Dozer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.DZR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEDA-*****","DESCRIPTION":"Armored Dozer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.DZR.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVES--*****","DESCRIPTION":"Armored Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.AST","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVER--*****","DESCRIPTION":"Armored Engineer Recon Vehicle (AERV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.ARMERV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEH--*****","DESCRIPTION":"Backhoe","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.BH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEF--*****","DESCRIPTION":"Ferry Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.FRYTSP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVT---*****","DESCRIPTION":"Train Locomotive","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.TRNLCO","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVC---*****","DESCRIPTION":"Civilian Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVCA--*****","DESCRIPTION":"Civilian Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCAL-*****","DESCRIPTION":"Civilian Compact Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.CPCT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCAM-*****","DESCRIPTION":"Civilian Midsize Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.MDSZ","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCAH-*****","DESCRIPTION":"Civilian Automobile Sedan","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.SDN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCO--*****","DESCRIPTION":"Civilian Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCOL-*****","DESCRIPTION":"Civilian Pickup Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.PU","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCOM-*****","DESCRIPTION":"Civilian Small Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCOH-*****","DESCRIPTION":"Civilian Large Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCM--*****","DESCRIPTION":"Civilian Multi-Passenger Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCML-*****","DESCRIPTION":"Civilian Multi-Passenger Van","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.VAN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCMM-*****","DESCRIPTION":"Civilian Small Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.SBUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCMH-*****","DESCRIPTION":"Civilian Large Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.LBUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCU--*****","DESCRIPTION":"Civilian Utility Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCUL-*****","DESCRIPTION":"Civilian Sport Utility Vehicle (SUV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.SUV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCUM-*****","DESCRIPTION":"Civilian Utility Small Box Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.SBOX","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCUH-*****","DESCRIPTION":"Civilian Utility Large Box Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.LBOX","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCJ--*****","DESCRIPTION":"Civilian Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCJL-*****","DESCRIPTION":"Civilian Small/Light Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCJM-*****","DESCRIPTION":"Civilian Medium Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCJH-*****","DESCRIPTION":"Civilian Large/Heavy Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCT--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCTL-*****","DESCRIPTION":"Civilian Small/Light Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCTM-*****","DESCRIPTION":"Civilian Medium Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCTH-*****","DESCRIPTION":"Civilian Large/Heavy Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCF--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCFL-*****","DESCRIPTION":"Civilian Small/Light Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVCFM-*****","DESCRIPTION":"Civilian Medium Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVCFH-*****","DESCRIPTION":"Civilian Large/Heavy Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVS---*****","DESCRIPTION":"Missile Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVST--*****","DESCRIPTION":"Transloader","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.TLDR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSR--*****","DESCRIPTION":"Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.TPTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSC--*****","DESCRIPTION":"Crane/Loading Device","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.CRN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSP--*****","DESCRIPTION":"Propellant Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.PLNT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSW--*****","DESCRIPTION":"Warhead Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.WH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVM---*****","DESCRIPTION":"Pack Animal(s)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.PKAN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*ES----*****","DESCRIPTION":"Equipment Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*ESR---*****","DESCRIPTION":"Sensor Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS.RAD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Sensor"},{"SYMBOLID":"S*G*ESE---*****","DESCRIPTION":"Emplaced Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS.EMP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Sensor"},{"SYMBOLID":"S*G*EX----*****","DESCRIPTION":"Special","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.2.4","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EXL---*****","DESCRIPTION":"Laser","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LSR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXN---*****","DESCRIPTION":"NBC Equipment","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.NBCEQ","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXF---*****","DESCRIPTION":"Flame Thrower","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.FLMTHR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXM---*****","DESCRIPTION":"Land Mines","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXMC--*****","DESCRIPTION":"Claymore","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE.CLM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Land Mines"},{"SYMBOLID":"S*G*EXML--*****","DESCRIPTION":"Less Than Lethal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE.LTL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Land Mines"},{"SYMBOLID":"S*G*EXI---*****","DESCRIPTION":"IED","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.5","ALPHAHIERARCHY":"WAR.GRNTRK.EQT.SPL.IED","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXI---MO***","DESCRIPTION":"VBIED","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.5.1","ALPHAHIERARCHY":"WAR.GRNTRK.EQT.SPL.IED.VBIED","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Improvised Explosive Device (IED)"},{"SYMBOLID":"S*G*I-----H****","DESCRIPTION":"Installation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*IR----H****","DESCRIPTION":"Raw Material Production/Storage","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IRM---H****","DESCRIPTION":"Raw Material Production/Storage Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.MNE","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRP---H****","DESCRIPTION":"Petroleum/Gas/Oil","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.PGO","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRN---H****","DESCRIPTION":"NBC","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRNB--H****","DESCRIPTION":"Production/Storage NBC Biological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.BIO","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IRNC--H****","DESCRIPTION":"Production/Storage NBC Chemical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.CML","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IRNN--H****","DESCRIPTION":"Production/Storage NBC Nuclear","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.NUC","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IP----H****","DESCRIPTION":"Processing Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.PF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IPD---H****","DESCRIPTION":"Processing Facility Decontamination","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.PF.DECON","PATH":"Warfighting Symbology/Ground Track/Installation/Processing Facility"},{"SYMBOLID":"S*G*IE----H****","DESCRIPTION":"Equipment Manufacture","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.EQTMNF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IU----H****","DESCRIPTION":"Service, Reasearch, Utility Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IUR---H****","DESCRIPTION":"Technological Research Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.TRF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUT---H****","DESCRIPTION":"Telecommunications Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.TCF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUE---H****","DESCRIPTION":"Electric Power Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUEN--H****","DESCRIPTION":"Nuclear Plant","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.NPT","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUED--H****","DESCRIPTION":"Dam","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.DAM","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUEF--H****","DESCRIPTION":"Fossil Fuel","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.FOSF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUP---H****","DESCRIPTION":"Public Water Services","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.PWS","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IM----H****","DESCRIPTION":"Military Materiel Facility","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.3.5","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IMF---H****","DESCRIPTION":"Nuclear Energy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMFA--H****","DESCRIPTION":"Atomic Energy Reactor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.ATMER","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMFP--H****","DESCRIPTION":"Nuclear Material Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMFPW-H****","DESCRIPTION":"Weapons Grade","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMP.WPNGR","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy/Nuclear Material Production"},{"SYMBOLID":"S*G*IMFS--H****","DESCRIPTION":"Nuclear Material Storage","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMS","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMA---H****","DESCRIPTION":"Aircraft Production & Assembly","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.APA","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IME---H****","DESCRIPTION":"Ammunition And Explosives Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.AMEP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMG---H****","DESCRIPTION":"Armament Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.AMTP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMV---H****","DESCRIPTION":"Military Vehicle Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.MILVP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMN---H****","DESCRIPTION":"Engineering Equipment Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.ENGEP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMNB--H****","DESCRIPTION":"Engineering Equipment Production Bridge","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.ENGEP.BRG","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Engineering Equipment Production"},{"SYMBOLID":"S*G*IMC---H****","DESCRIPTION":"Chemical & Biological Warfare Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.CBWP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMS---H****","DESCRIPTION":"Ship Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.8","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.SHPCSN","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMM---H****","DESCRIPTION":"Missile & Space System Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.9","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.MSSP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IG----H****","DESCRIPTION":"Government Leadership","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.INS.GOVLDR","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IB----H****","DESCRIPTION":"Military Base/Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IBA---H****","DESCRIPTION":"Airport/Airbase","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF.AB","PATH":"Warfighting Symbology/Ground Track/Installation/Military Base and Facility"},{"SYMBOLID":"S*G*IBN---H****","DESCRIPTION":"Seaport/Naval Base","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF.SP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Base and Facility"},{"SYMBOLID":"S*G*IT----H****","DESCRIPTION":"Transport Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TSPF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IX----H****","DESCRIPTION":"Medical Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MEDF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IXH---H****","DESCRIPTION":"Hospital","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MEDF.HSP","PATH":"Warfighting Symbology/Ground Track/Installation/Medical Facility"},{"SYMBOLID":"S*G*IC----H****","DESCRIPTION":"Tented Camp","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TNTCMP","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION"},{"SYMBOLID":"S*G*ICD---H****","DESCRIPTION":"Tented Camp, Displaced Persons/Refugees","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TNTCMP.DPRE","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION/Tented Camp"},{"SYMBOLID":"S*G*ICT---H****","DESCRIPTION":"Tented Training Camp","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.INK.INS.TNTCMP.TNG","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION/TENTED CAMP"},{"SYMBOLID":"S*G*IW----H****","DESCRIPTION":"Warehouse/Storage Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.11","ALPHAHIERARCHY":"WAR.GRDTRK.INS.WAREHS","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION"},{"SYMBOLID":"S*S*------*****","DESCRIPTION":"Sea Surface Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.4","ALPHAHIERARCHY":"WAR.SSUF","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*S*C-----*****","DESCRIPTION":"Sea Surface Track Combatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*CL----*****","DESCRIPTION":"Line","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CLCV--*****","DESCRIPTION":"Carrier","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.1","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLBB--*****","DESCRIPTION":"Battleship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.BBS","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLCC--*****","DESCRIPTION":"Cruiser","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.CRU","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLDD--*****","DESCRIPTION":"Destroyer","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.DD","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLFF--*****","DESCRIPTION":"Frigate/Corvette","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.5","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.FFR","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLLL--*****","DESCRIPTION":"Littoral Combatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLLLAS*****","DESCRIPTION":"Antisubmarine Warfare Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CLLLMI*****","DESCRIPTION":"Mine Warfare Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.MNEW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CLLLSU*****","DESCRIPTION":"Surface Warfare (SUW) Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.SUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CA----*****","DESCRIPTION":"Amphibious Warfare Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CALA--*****","DESCRIPTION":"Assault Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.ASTVES","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CALS--*****","DESCRIPTION":"Landing Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CALSM-*****","DESCRIPTION":"Landing Ship Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP.MDM","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship/Landing Ship"},{"SYMBOLID":"S*S*CALST-*****","DESCRIPTION":"Landing Ship Tank","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP.TANK","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship/Landing Ship"},{"SYMBOLID":"S*S*CALC--*****","DESCRIPTION":"Landing Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDCRT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CM----*****","DESCRIPTION":"Mine Warfare Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CMML--*****","DESCRIPTION":"Minelayer","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNELYR","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMS--*****","DESCRIPTION":"Minesweeper","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNESWE","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMH--*****","DESCRIPTION":"Minehunter","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNEHNT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMA--*****","DESCRIPTION":"MCM Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MCMSUP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CP----*****","DESCRIPTION":"Sea Surface Combatant Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CPSB--*****","DESCRIPTION":"Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Sea Surface Combatant Patrol"},{"SYMBOLID":"S*S*CPSU--*****","DESCRIPTION":"Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Sea Surface Combatant Patrol"},{"SYMBOLID":"S*S*CPSUM-*****","DESCRIPTION":"Anti-Ship Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.ASMSL","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CPSUT-*****","DESCRIPTION":"Torpedo(Antisurface Warfare)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.TPD","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CPSUG-*****","DESCRIPTION":"Antisurface Warfare Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.GUN","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CH----*****","DESCRIPTION":"Combatant Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.5","ALPHAHIERARCHY":"WAR.SSUF.CBTT.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*S-----*****","DESCRIPTION":"Sea Surface Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*SP----*****","DESCRIPTION":"Picket","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN.PKT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Station"},{"SYMBOLID":"S*S*SA----*****","DESCRIPTION":"ASW Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN.ASWSHP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Station"},{"SYMBOLID":"S*S*G-----*****","DESCRIPTION":"Navy Group","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*GT----*****","DESCRIPTION":"Navy Task Force","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTF","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GG----*****","DESCRIPTION":"Navy Task Group","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTG","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GU----*****","DESCRIPTION":"Navy Task Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTU","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GC----*****","DESCRIPTION":"Convoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.CNY","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*CD----*****","DESCRIPTION":"Surface Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.8","ALPHAHIERARCHY":"WAR.SSUF.CBTT.SUFDCY","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CU----*****","DESCRIPTION":"Unmanned Surface Vehicle (USV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/"},{"SYMBOLID":"S*S*CUM---*****","DESCRIPTION":"USV Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.MNECM","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUS---*****","DESCRIPTION":"USV Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUN---*****","DESCRIPTION":"USV Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.ASUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUR---*****","DESCRIPTION":"USV Remote Multimission Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.RMV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*N-----*****","DESCRIPTION":"Noncombatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2","ALPHAHIERARCHY":"WAR.SSUF.NCBTT","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*NR----*****","DESCRIPTION":"Underway Replenishment","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.1","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.UWRPM","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NF----*****","DESCRIPTION":"Fleet Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.2","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.FLTSUP","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NI----*****","DESCRIPTION":"Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.3","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.INT","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NS----*****","DESCRIPTION":"Service & Support Harbor","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.4","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.SSH","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NM----*****","DESCRIPTION":"Hospital Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.5","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.HSPSHP","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NH----*****","DESCRIPTION":"Noncombatant Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.6","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NN----*****","DESCRIPTION":"Noncombatant Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.7","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.STN","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NNR---*****","DESCRIPTION":"Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.7.1","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.STN.RSC","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant/Station"},{"SYMBOLID":"S*S*X-----*****","DESCRIPTION":"Non-Military","DRAWCATEGORY":"0","HIERARCHY":"1.X.4.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*XM----*****","DESCRIPTION":"Merchant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XMC---*****","DESCRIPTION":"Subsurface Non-military Cargo","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.CGO","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMR---*****","DESCRIPTION":"Roll On/Roll Off","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.RORO","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMO---*****","DESCRIPTION":"Oiler/Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.OLR","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMTU--*****","DESCRIPTION":"Tug","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.4","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.TUG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMF---*****","DESCRIPTION":"Ferry","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.5","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.FRY","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMP---*****","DESCRIPTION":"Passenger","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.6","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.PSG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMH---*****","DESCRIPTION":"Hazardous Materials (HAZMAT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.7","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.HAZMAT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMTO--*****","DESCRIPTION":"Towing Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.8","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.TOWVES","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XF----*****","DESCRIPTION":"Fishing","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XFDF--*****","DESCRIPTION":"Drifter","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.DRFT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XFDR--*****","DESCRIPTION":"Dredge","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.DRG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XFTR--*****","DESCRIPTION":"Trawler","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.TRW","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XR----*****","DESCRIPTION":"Leisure Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.LESCRT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XL----*****","DESCRIPTION":"Law Enforcement Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.4","ALPHAHIERARCHY":"WAR.SSUF.NMIL.LAWENV","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XH----*****","DESCRIPTION":"Non-military Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.5","ALPHAHIERARCHY":"WAR.SSUF.NMIL.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*O-----*****","DESCRIPTION":"Own Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.4","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*U*------*****","DESCRIPTION":"Subsurface Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.5","ALPHAHIERARCHY":"WAR.SBSUF","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*U*S-----*****","DESCRIPTION":"Submarine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*SN----*****","DESCRIPTION":"Nuclear Propulsion","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SNF---*****","DESCRIPTION":"Submarine Nuclear Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNA---*****","DESCRIPTION":"Submarine Nuclear Attack (SSN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.ATK","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNM---*****","DESCRIPTION":"Submarine Nuclear Missile Type Unknown","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.MSL","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNG---*****","DESCRIPTION":"Submarine Nuclear Guided Missile (SSGN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.4","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.GDD","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNB---*****","DESCRIPTION":"Ballistic Missile Submarine (SSB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.BLST","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SC----*****","DESCRIPTION":"Conventional Propulsion","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SCF---*****","DESCRIPTION":"Conventional Propulsion Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCA---*****","DESCRIPTION":"Attack Submarine (SS)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.ATK","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCM---*****","DESCRIPTION":"Conventional Propulsion Missile Submarine (TYPE UNKNOWN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.MSL","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCG---*****","DESCRIPTION":"Guided Missile Submarine (SSG)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.4","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.GDD","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCB---*****","DESCRIPTION":"Conventional Propulsion Ballistic Missile (SSB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.BLST","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SO----*****","DESCRIPTION":"Other Submersible","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.OTH","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SOF---*****","DESCRIPTION":"Other Submersible Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.0","ALPHAHIERARCHY":"WAR.SBSUF.SUB.OTH.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible"},{"SYMBOLID":"S*U*SU----*****","DESCRIPTION":"Unmanned Underwater Vehicle (UUV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible"},{"SYMBOLID":"S*U*SUM---*****","DESCRIPTION":"UUV Mine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.MNEW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SUS---*****","DESCRIPTION":"UUV Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.ASBW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SUN---*****","DESCRIPTION":"UUV Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.ASUW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SS----*****","DESCRIPTION":"Submarine Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.4","ALPHAHIERARCHY":"WAR.SBSUF.SUB.STN","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SSA---*****","DESCRIPTION":"ASW Submarine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.4.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.STN.ASWSUB","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Submarine Station"},{"SYMBOLID":"S*U*SF----*****","DESCRIPTION":"Submarine Station Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*W-----*****","DESCRIPTION":"Underwater Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*WT----*****","DESCRIPTION":"Torpedo","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.TPD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon"},{"SYMBOLID":"S*U*WM----*****","DESCRIPTION":"Sea Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon"},{"SYMBOLID":"S*U*WMD---*****","DESCRIPTION":"Sea Mine Dealt","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMG---*****","DESCRIPTION":"Sea Mine (Ground)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMGD--*****","DESCRIPTION":"Sea Mine (Ground) Dealt","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMM---*****","DESCRIPTION":"Sea Mine (Moored)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMMD--*****","DESCRIPTION":"Sea Mine (Moored) Dealt","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMF---*****","DESCRIPTION":"Sea Mine (Floating)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMFD--*****","DESCRIPTION":"Sea Mine (Floating) Dealt","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMO---*****","DESCRIPTION":"Sea Mine (Other Position)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.5","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMOP","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMOD--*****","DESCRIPTION":"Sea Mine (Other Position) Dealt","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.5.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMOP.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (In Other Position)"},{"SYMBOLID":"S*U*WD----*****","DESCRIPTION":"Underwater Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*WDM---*****","DESCRIPTION":"Sea Mine Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY.SMDCY","PATH":"Warfighting Symbology/Subsurface Track/Underwater Decoy"},{"SYMBOLID":"S*U*N-----*****","DESCRIPTION":"Non-Submarine","DRAWCATEGORY":"0","HIERARCHY":"1.X.5.4","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*ND----*****","DESCRIPTION":"Diver","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.4.1","ALPHAHIERARCHY":"WAR.SBSUF.NSUB.DVR","PATH":"Warfighting Symbology/Subsurface Track/Non-Submarine"},{"SYMBOLID":"S*U*X-----*****","DESCRIPTION":"Unexploded Ordnance Area (Subsurface)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.8","ALPHAHIERARCHY":"WAR.SBSUF.UXO","PATH":"WARFIGHTING SYMBOLS/SUBSURFACE TRACK"},{"SYMBOLID":"S*F*------*****","DESCRIPTION":"Special Operations Forces (SOF) Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.6","ALPHAHIERARCHY":"WAR.SOFUNT","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*F*A-----*****","DESCRIPTION":"SOF Unit Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*AF----*****","DESCRIPTION":"SOF Unit Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AFA---*****","DESCRIPTION":"SOF Unit Fixed Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.ATK","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFK---*****","DESCRIPTION":"SOF Unit Refuel","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.RFE","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFU---*****","DESCRIPTION":"SOF Unit Fixed Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFUL--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.LIT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AFUM--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.MDM","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AFUH--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.HVY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AV----*****","DESCRIPTION":"SOF Unit V/STOL","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.VSTOL","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AH----*****","DESCRIPTION":"SOF Unit Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AHH---*****","DESCRIPTION":"SOF Unit Rotary Wing Combat Search & Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.CSAR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHA---*****","DESCRIPTION":"SOF Unit Rotary Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.ATK","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHU---*****","DESCRIPTION":"SOF Unit Rotary Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHUL--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.LIT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*AHUM--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.MDM","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*AHUH--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.HVY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*N-----*****","DESCRIPTION":"SOF Unit SOF Unit Naval","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2","ALPHAHIERARCHY":"WAR.SOFUNT.NAV","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*NS----*****","DESCRIPTION":"SOF Unit Seal","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.1","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SEAL","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NU----*****","DESCRIPTION":"SOF Unit Underwater Demolition Team","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.2","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.UH2DML","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NB----*****","DESCRIPTION":"SOF Unit Special Boat","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.3","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SBT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NN----*****","DESCRIPTION":"SOF Unit Special SSNR","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.4","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SSSNR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*G-----*****","DESCRIPTION":"SOF Unit Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3","ALPHAHIERARCHY":"WAR.SOFUNT.GRD","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*GS----*****","DESCRIPTION":"SOF Unit Special Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.SOF","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GR----*****","DESCRIPTION":"SOF Unit Ranger","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.RGR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GP----*****","DESCRIPTION":"SOF Unit Psychological Operations (PSYOP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.PSYOP","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GPA---*****","DESCRIPTION":"SOF Unit Fixed Wing Aviation (PSYOP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.PSYOP.FIXAVN","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground/SOF Unit Psychological Operations (PSYOP)"},{"SYMBOLID":"S*F*GC----*****","DESCRIPTION":"SOF Unit Civil Affairs","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.4","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.CVLAFF","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*B-----*****","DESCRIPTION":"SOF Unit Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.4","ALPHAHIERARCHY":"WAR.SOFUNT.SUP","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*Z*------*****","DESCRIPTION":"Unknown Battle Dimension","DRAWCATEGORY":"8","HIERARCHY":"1.X.7","ALPHAHIERARCHY":"UNK","PATH":"Warfighting Symbology"},{"SYMBOLID":"I*-*--------***","DESCRIPTION":"Signals Intelligence","DRAWCATEGORY":"0","HIERARCHY":"4.X"},{"SYMBOLID":"I*P*--------***","DESCRIPTION":"Space Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.1","PATH":"Signals Intelligence"},{"SYMBOLID":"I*P*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1","PATH":"Signals Intelligence/Space Track"},{"SYMBOLID":"I*P*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1.1","PATH":"Signals Intelligence/Space Track/Signal Intercept"},{"SYMBOLID":"I*P*SCD-----***","DESCRIPTION":"Satellite Down-Link","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.1.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.COMM.SATDL","PATH":"Signals Intelligence/Space Track/Signal Intercept/Communications"},{"SYMBOLID":"I*P*SR------***","DESCRIPTION":"Radar(Signal Intercept)","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1.2","PATH":"Signals Intelligence/Space Track/Signal Intercept"},{"SYMBOLID":"I*P*SRD-----***","DESCRIPTION":"Data Transmission(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRE-----***","DESCRIPTION":"Earth Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.2","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.ERHSVL","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRI-----***","DESCRIPTION":"IFF (Transponder)(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.3","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.IFF","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRM-----***","DESCRIPTION":"Multi-function(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.4","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRT-----***","DESCRIPTION":"Target Acquisition(Space Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.5","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRS-----***","DESCRIPTION":"Space","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.6","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.SPC","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRU-----***","DESCRIPTION":"Unknown(Space Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.7","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*--------***","DESCRIPTION":"Air Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.2","PATH":"Signals Intelligence"},{"SYMBOLID":"I*A*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1","PATH":"Signals Intelligence/Air Track"},{"SYMBOLID":"I*A*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1.1","PATH":"Signals Intelligence/Air Track/Signal Intercept"},{"SYMBOLID":"I*A*SCC-----***","DESCRIPTION":"Cellular/Mobile(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.2","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.3","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCS-----***","DESCRIPTION":"Satellite Up-Link(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.4","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SR------***","DESCRIPTION":"Radar","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1.2","PATH":"Signals Intelligence/Air Track/Signal Intercept"},{"SYMBOLID":"I*A*SRAI----***","DESCRIPTION":"Airborne Intercept","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.ABNINC","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRAS----***","DESCRIPTION":"Airborne Search and Bombing","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.2","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.ABNSB","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRC-----***","DESCRIPTION":"Controlled Intercept(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.3","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.CTDINC","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRD-----***","DESCRIPTION":"Data Transmission(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.4","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRE-----***","DESCRIPTION":"Early Warning(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.5","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.EW","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRF-----***","DESCRIPTION":"Fire Control(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.6","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRI-----***","DESCRIPTION":"IFF (Transponder)(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.7","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.IFF","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMA----***","DESCRIPTION":"Missile Acquisition(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.8","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMD----***","DESCRIPTION":"Missile Downlink","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.9","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLDL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMG----***","DESCRIPTION":"Missile Guidance(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.10","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMT----***","DESCRIPTION":"Missile Tracking(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.11","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMF----***","DESCRIPTION":"Multi-Function(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.12","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTI----***","DESCRIPTION":"Target Illuminator(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.13","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTA----***","DESCRIPTION":"Target Acquisition(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.14","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTT----***","DESCRIPTION":"Target Tracking(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.15","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRU-----***","DESCRIPTION":"Unknown(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.16","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*--------***","DESCRIPTION":"Ground Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.3","PATH":"Signals Intelligence"},{"SYMBOLID":"I*G*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1","PATH":"Signals Intelligence/Ground Track"},{"SYMBOLID":"I*G*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1.1","PATH":"Signals Intelligence/Ground Track/Signal Intercept"},{"SYMBOLID":"I*G*SCC-----***","DESCRIPTION":"Cellular/Mobile(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.2","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.3","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCS-----***","DESCRIPTION":"Satellite Up-Link(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.4","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCT-----***","DESCRIPTION":"Tropospheric Scatter","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.5","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.TPSSCT","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SR------***","DESCRIPTION":"Radar(Signals Intelligence)","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1.2","PATH":"Signals Intelligence/Ground Track/Signal Intercept"},{"SYMBOLID":"I*G*SRAT----***","DESCRIPTION":"Air Traffic Control(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.ATCTL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRAA----***","DESCRIPTION":"Anti-Aircraft(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.2","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.AAC","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRB-----***","DESCRIPTION":"Battlefield Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.3","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.BTFSVL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRCS----***","DESCRIPTION":"Coastal Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.4","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.CSTSVL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRCA----***","DESCRIPTION":"Controlled Approach(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.5","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.CTDAPP","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRD-----***","DESCRIPTION":"Data Transmission(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.6","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRE-----***","DESCRIPTION":"Early Warning(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.7","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.EW","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRF-----***","DESCRIPTION":"Fire Control(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.8","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRH-----***","DESCRIPTION":"Height Finding(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.9","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.HGTFDG","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRI-----***","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.10","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.IDFF","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMM----***","DESCRIPTION":"Meteorological (Military)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.11","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.METO","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMA----***","DESCRIPTION":"Missile Acquisition(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.12","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMG----***","DESCRIPTION":"Missile Guidance(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.13","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMT----***","DESCRIPTION":"Missile Tracking(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.14","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMF----***","DESCRIPTION":"Multi-Function(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.15","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRS-----***","DESCRIPTION":"Shell Tracking","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.16","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.SHETKG","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTA----***","DESCRIPTION":"Target Acquisition(Radar)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.17","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTI----***","DESCRIPTION":"Target Illuminator(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.18","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTT----***","DESCRIPTION":"Target Tracking(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.19","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRU-----***","DESCRIPTION":"Unknown(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.20","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*--------***","DESCRIPTION":"Sea Surface Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.4","PATH":"Signals Intelligence"},{"SYMBOLID":"I*S*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1","PATH":"Signals Intelligence/Sea Surface Track"},{"SYMBOLID":"I*S*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1.1","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept"},{"SYMBOLID":"I*S*SCC-----***","DESCRIPTION":"Cellular/Mobile(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.2","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.3","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCS-----***","DESCRIPTION":"Satellite Up-Link(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.4","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SR------***","DESCRIPTION":"Radar(Sea Surface Track)","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1.2","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept"},{"SYMBOLID":"I*S*SRAT----***","DESCRIPTION":"Air Traffic Control(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.ATCTL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRAA----***","DESCRIPTION":"Anti-Aircraft(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.2","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.AAC","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRCA----***","DESCRIPTION":"Controlled Approach(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.3","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.CTDAPP","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRCI----***","DESCRIPTION":"Controlled Intercept(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.4","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.CTDINC","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRD-----***","DESCRIPTION":"Data Transmission(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.5","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRE-----***","DESCRIPTION":"Early Warning(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.6","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.EW","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRF-----***","DESCRIPTION":"Fire Control(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.7","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRH-----***","DESCRIPTION":"Height Finding(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.8","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.HGTFDG","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRI-----***","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.9","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.IDFF","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMM----***","DESCRIPTION":"Meteorological (Military)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.10","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.METO","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMA----***","DESCRIPTION":"Missile Acquisition(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.11","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMG----***","DESCRIPTION":"Missile Guidance(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.12","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMT----***","DESCRIPTION":"Missile Tracking(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.13","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMF----***","DESCRIPTION":"Multi-Function(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.14","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRS-----***","DESCRIPTION":"Surface Search(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.15","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.SUFSRH","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTA----***","DESCRIPTION":"Target Acquisition(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.16","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTI----***","DESCRIPTION":"Target Illuminator(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.17","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTT----***","DESCRIPTION":"Target Tracking(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.18","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRU-----***","DESCRIPTION":"Unknown(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.19","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*--------***","DESCRIPTION":"Subsurface Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.5","PATH":"Signals Intelligence"},{"SYMBOLID":"I*U*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1","PATH":"Signals Intelligence/Subsurface Track"},{"SYMBOLID":"I*U*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1.1","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept"},{"SYMBOLID":"I*U*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.2","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SCS-----***","DESCRIPTION":"Satellite Up-Link(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.3","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SR------***","DESCRIPTION":"Radar(Subsurface Track)","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1.2","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept"},{"SYMBOLID":"I*U*SRD-----***","DESCRIPTION":"Data Transmission(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRE-----***","DESCRIPTION":"Early Warning(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.2","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.EW","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRM-----***","DESCRIPTION":"Multi-Function(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.3","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRS-----***","DESCRIPTION":"Surface Search(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.4","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.SUFSRH","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRT-----***","DESCRIPTION":"Target Acquisition(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.5","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRU-----***","DESCRIPTION":"Unknown(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.6","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"O*-*------*****","DESCRIPTION":"Stability Operations","DRAWCATEGORY":"0","HIERARCHY":"5.X","ALPHAHIERARCHY":"STBOPS"},{"SYMBOLID":"O*V*------*****","DESCRIPTION":"Violent Activities","DRAWCATEGORY":"0","HIERARCHY":"5.X.1","ALPHAHIERARCHY":"STBOPS.VIOATY","PATH":"Stability Operations"},{"SYMBOLID":"O*V*A-----*****","DESCRIPTION":"Arson/Fire","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.1","ALPHAHIERARCHY":"STBOPS.VIOATY.ASN","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*M-----*****","DESCRIPTION":"Killing (General)","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*MA----*****","DESCRIPTION":"Murder","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.1","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.MDR","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*MB----*****","DESCRIPTION":"Execution","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.2","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.EX","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*MC----*****","DESCRIPTION":"Assassination","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.3","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.ASS","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*B-----*****","DESCRIPTION":"Bomb/Bombing","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.3","ALPHAHIERARCHY":"STBOPS.VIOATY.BM","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*Y-----*****","DESCRIPTION":"Booby Trap","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.4","ALPHAHIERARCHY":"STBOPS.VIOATY.BBY","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*D-----*****","DESCRIPTION":"Drive-By Shooting","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.5","ALPHAHIERARCHY":"STBOPS.VIOATY.DBS","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*S-----*****","DESCRIPTION":"Sniping","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.6","ALPHAHIERARCHY":"STBOPS.VIOATY.SPG","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*P-----*****","DESCRIPTION":"Poisoning","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.7","ALPHAHIERARCHY":"STBOPS.VIOATY.PSNG","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*E-----*****","DESCRIPTION":"Explosion","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*EI----*****","DESCRIPTION":"IED Explosion","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.1","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EG----*****","DESCRIPTION":"Explosion, Grenade","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.2","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EN----*****","DESCRIPTION":"Explosion, Incendiary","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.3","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EM----*****","DESCRIPTION":"Explosion, Mine","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.4","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EO----*****","DESCRIPTION":"Explosion, Mortar Fire","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.5","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*ER----*****","DESCRIPTION":"Explosion, Rocket","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.6","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EV----*****","DESCRIPTION":"Explosion, Wheeled Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.7","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN.VEH","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*L*------*****","DESCRIPTION":"Locations","DRAWCATEGORY":"0","HIERARCHY":"5.X.2","ALPHAHIERARCHY":"STBOPS.LOCAT","PATH":"Stability Operations"},{"SYMBOLID":"O*L*B-----*****","DESCRIPTION":"Black List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.1","ALPHAHIERARCHY":"STBOPS.LOCAT.BLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*G-----*****","DESCRIPTION":"Gray List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.2","ALPHAHIERARCHY":"STBOPS.LOCAT.GLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*W-----*****","DESCRIPTION":"White List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.3","ALPHAHIERARCHY":"STBOPS.LOCAT.WLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*M-----*****","DESCRIPTION":"Mass Grave Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.4","ALPHAHIERARCHY":"STBOPS.LOCAT.MASS","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*E-----H****","DESCRIPTION":"Drug Lab","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.6","ALPHAHIERARCHY":"STBOPS.LOCAT.DGLAB","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*H-----H****","DESCRIPTION":"House/Residence","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.7","ALPHAHIERARCHY":"STBOPS.LOCAT.HOUSE","PATH":"Stability Operations/LOCATIONS"},{"SYMBOLID":"O*L*N-----H****","DESCRIPTION":"Cave Entrance","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.8","ALPHAHIERARCHY":"STBOPS.LOCAT.CAVENT","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*H-----H****","DESCRIPTION":"Palace/Presidential Residence","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.9","ALPHAHIERARCHY":"STBOPS.LOCAT.HOUSE","PATH":"Stability Operations/lOCATIONS"},{"SYMBOLID":"O*L*F-----H****","DESCRIPTION":"Polling Place","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.10","ALPHAHIERARCHY":"STBOPS.LOCAT.POLLPL","PATH":"Stability Operations/LOCATIONS"},{"SYMBOLID":"O*O*------*****","DESCRIPTION":"Operations","DRAWCATEGORY":"0","HIERARCHY":"5.X.3","ALPHAHIERARCHY":"STBOPS.OPN","PATH":"Stability Operations"},{"SYMBOLID":"O*O*P-----*****","DESCRIPTION":"Patrolling","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.1","ALPHAHIERARCHY":"STBOPS.OPN.PATG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*R-----*****","DESCRIPTION":"Recruitment","DRAWCATEGORY":"0","HIERARCHY":"5.X.3.2","ALPHAHIERARCHY":"STBOPS.OPN.RCMT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*RW----*****","DESCRIPTION":"Recruitment (Willing)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.2.1","ALPHAHIERARCHY":"STBOPS.OPN.RCMT.WLG","PATH":"Stability Operations/Operations/Recruitment"},{"SYMBOLID":"O*O*RC----*****","DESCRIPTION":"Recruitment (Coerced/Impressed)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.2.2","ALPHAHIERARCHY":"STBOPS.OPN.RCMT.CRCD","PATH":"Stability Operations/Operations/Recruitment"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Demonstration","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.3","ALPHAHIERARCHY":"STBOPS.OPN.DEMO","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*M-----*****","DESCRIPTION":"Mine Laying","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.4","ALPHAHIERARCHY":"STBOPS.OPN.ML","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*Y-----*****","DESCRIPTION":"Psychological Operations (Psyop)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*YT----*****","DESCRIPTION":"Psyop (TV and Radio Propaganda)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.1","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.TARP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*YW----*****","DESCRIPTION":"Psyop (Written Propaganda)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.2","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.WP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*YH----*****","DESCRIPTION":"House-to-House Propaganda","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.3","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.HTHP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*F-----*****","DESCRIPTION":"Foraging/Searching","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.6","ALPHAHIERARCHY":"STBOPS.OPN.FRGSRH","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*S-----*****","DESCRIPTION":"Spy","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.7","ALPHAHIERARCHY":"STBOPS.OPN.SPY","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*O-----*****","DESCRIPTION":"Food Distribution","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.8","ALPHAHIERARCHY":"STBOPS.OPN.FDDIST","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*E-----*****","DESCRIPTION":"Extortion","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.9","ALPHAHIERARCHY":"STBOPS.OPN.EXTN","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*H-----*****","DESCRIPTION":"Hijacking","DRAWCATEGORY":"0","HIERARCHY":"5.X.3.10","ALPHAHIERARCHY":"STBOPS.OPN.HJKG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*HT----*****","DESCRIPTION":"Hijacking (Vehicle)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.1","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.VEH","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*HA----*****","DESCRIPTION":"Hijacking (Airplane)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.2","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.APL","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*HV----*****","DESCRIPTION":"Hijacking (Boat)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.3","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.BOAT","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*K-----*****","DESCRIPTION":"Kidnapping","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.11","ALPHAHIERARCHY":"STBOPS.OPN.KDNG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*KA----*****","DESCRIPTION":"Attempted Kidnapping","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.11.1","ALPHAHIERARCHY":"STBOPS.OPN.KDNG.ATEMPT","PATH":"Stability Operations/Operations/Kidnapping"},{"SYMBOLID":"O*O*A-----*****","DESCRIPTION":"Arrest","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.12","ALPHAHIERARCHY":"STBOPS.OPN.ARR","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*U-----*****","DESCRIPTION":"Drug Operation","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.13","ALPHAHIERARCHY":"STBOPS.OPN.DGOPN","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*UT----*****","DESCRIPTION":"Drug Trafficking","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.13.1","ALPHAHIERARCHY":"STBOPS.OPN.DGOPN.DGTRFC","PATH":"Stability Operations/OPERATIONS/DRUG OPERATION"},{"SYMBOLID":"O*O*N-----*****","DESCRIPTION":"Raid on a House","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.14","ALPHAHIERARCHY":"STBOPS.OPN.HSRAID","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*2-----*****","DESCRIPTION":"Burglary","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.15","ALPHAHIERARCHY":"STBOPS.OPN.BRGLRY","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*V-----*****","DESCRIPTION":"Home Eviction","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.16","ALPHAHIERARCHY":"STBOPS.OPN.HSEVCT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*I-----*****","DESCRIPTION":"Black Marketing","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.17","ALPHAHIERARCHY":"STBOPS.OPM.BLKMKT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*J-----*****","DESCRIPTION":"Jail Break","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.18","ALPHAHIERARCHY":"STBOPS.OPN.JAILBREAK","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*B-----*****","DESCRIPTION":"Robbery","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.19","ALPHAHIERARCHY":"STBOPS.OPN.ROB","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*G-----*****","DESCRIPTION":"Sabotage","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.21","ALPHAHIERARCHY":"STBOPS.OPN.SABOTG","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*X-----*****","DESCRIPTION":"Smuggling","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.22","ALPHAHIERARCHY":"STBOPS.OPN.SMGLNG","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*W-----*****","DESCRIPTION":"Rock Throwing","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.23","ALPHAHIERARCHY":"STBOPS.OPN.RCKTHR","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*Z-----*****","DESCRIPTION":"Suspicious Activity","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.24","ALPHAHIERARCHY":"STBOPS.OPN.SUSACT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*T-----*****","DESCRIPTION":"Theft","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.25","ALPHAHIERARCHY":"STBOPS.OPN.THEFT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*TV----*****","DESCRIPTION":"Wheeled Vehicle Theft","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.25.1","ALPHAHIERARCHY":"STBOPS.OPN.THEFT.VEH","PATH":"Stability Operations/OPERATIONS/THEFT"},{"SYMBOLID":"O*O*Q-----*****","DESCRIPTION":"Warrant Served","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.26","ALPHAHIERARCHY":"STBOPS.OPN.WARRENT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*I*------*****","DESCRIPTION":"Items","DRAWCATEGORY":"0","HIERARCHY":"5.X.4","ALPHAHIERARCHY":"STBOPS.ITM","PATH":"Stability Operations"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Refugees","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.1","ALPHAHIERARCHY":"STBOPS.ITM.RFG","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*S-----*****","DESCRIPTION":"Safe House","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.2","ALPHAHIERARCHY":"STBOPS.ITM.SAFHSE","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*G-----*****","DESCRIPTION":"Graffiti","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.3","ALPHAHIERARCHY":"STBOPS.ITM.GRF","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*V-----*****","DESCRIPTION":"Vandalism/Rape/Loot/Ransack/Plunder/Sack","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.4","ALPHAHIERARCHY":"STBOPS.ITM.VRLRPS","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*I-----*****","DESCRIPTION":"Known Insurgent Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.5","ALPHAHIERARCHY":"STBOPS.ITM.KNIVEH","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*D-----*****","DESCRIPTION":"Drug Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.6","ALPHAHIERARCHY":"STBOPS.ITM.DGVEH","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*F-----*****","DESCRIPTION":"Internal Security Force","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.7","ALPHAHIERARCHY":"STBOPS.ITM.ISF","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*M-----*****","DESCRIPTION":"Meeting","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.8","ALPHAHIERARCHY":"STBOPS.ITM.MEETING","PATH":"Stability Operations/ITEMS"},{"SYMBOLID":"O*I*T-----*****","DESCRIPTION":"Tent","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.9","ALPHAHIERARCHY":"STBOPS.ITM.TENT","PATH":"Stability Operations/ITEMS"},{"SYMBOLID":"O*P*------*****","DESCRIPTION":"Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5","ALPHAHIERARCHY":"STBOPS.INDIV","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*A-----*****","DESCRIPTION":"Leader","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.1","ALPHAHIERARCHY":"STBOPS.INDIV.LEADER","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*AR----*****","DESCRIPTION":"Religious Leader","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.1.1","ALPHAHIERARCHY":"STBOPS.INDIV.LEADER.RELIGS","PATH":"Stability Operations/INDIVIDUAL/LEADER"},{"SYMBOLID":"O*P*B-----*****","DESCRIPTION":"Targeted Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.2","ALPHAHIERARCHY":"STBOPS.INDIV.TRGTD","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*C-----*****","DESCRIPTION":"Terrorist","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.3","ALPHAHIERARCHY":"STBOPS.INDIV.TERRST","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*P*F-----*****","DESCRIPTION":"IED Suicide Bomber","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.6","ALPHAHIERARCHY":"STBOPS.INDIV.SUICBM","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*P*D-----*****","DESCRIPTION":"Dead Body","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.4","ALPHAHIERARCHY":"STBOPS.INDIV.DDBODY","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*G-----*****","DESCRIPTION":"Exfiltrating Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.7","ALPHAHIERARCHY":"STBOPS.INDIV.EXFLT","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*H-----*****","DESCRIPTION":"Infiltrating Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.8","ALPHAHIERARCHY":"STBOPS.INDIV.INFLT","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*E-----*****","DESCRIPTION":"Speaker","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.5","ALPHAHIERARCHY":"STBOPS.INDIV.SPKR","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*G*------*****","DESCRIPTION":"Non-Military Group or Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6","ALPHAHIERARCHY":"STBOPS.GRPORG","PATH":"Stability Operations"},{"SYMBOLID":"O*G*B-----*****","DESCRIPTION":"Non-Governmental Organizations (NGO)","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.2","ALPHAHIERARCHY":"STBOPS.GRPORG.NGO","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*C-----*****","DESCRIPTION":"Terrorist Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.3","ALPHAHIERARCHY":"STBOPS.GRPORG.TERRST","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*D-----*****","DESCRIPTION":"Religious Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.4","ALPHAHIERARCHY":"STBOPS.GRPORG.RELIGS","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*E-----*****","DESCRIPTION":"Foreign Fighter","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.5","ALPHAHIERARCHY":"STBOPS.GRPORG.FNFGHT","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*F-----*****","DESCRIPTION":"Gang","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.6","ALPHAHIERARCHY":"STBOPS.GRPORG.GANG","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*R*------*****","DESCRIPTION":"Rape","DRAWCATEGORY":"8","HIERARCHY":"5.X.7","ALPHAHIERARCHY":"STBOPS.RAPE","PATH":"Stability Operations/RAPE"},{"SYMBOLID":"O*R*A-----*****","DESCRIPTION":"Attempted Rape","DRAWCATEGORY":"8","HIERARCHY":"5.X.7.1","ALPHAHIERARCHY":"STBOPS.RAPE.ATEMPT","PATH":"Stability Operations/Rape"},{"SYMBOLID":"O*E*------*****","DESCRIPTION":"Events SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10","PATH":"Stability Operations"},{"SYMBOLID":"O*E*A-----*****","DESCRIPTION":"Elections SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.1","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*B-----*****","DESCRIPTION":"Speech SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.2","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*C-----*****","DESCRIPTION":"Sermon SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.3","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*D-----*****","DESCRIPTION":"Meeting SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.4","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*E-----*****","DESCRIPTION":"Demonstration(Events) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.5","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*F-----*****","DESCRIPTION":"Riot SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.6","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*G-----*****","DESCRIPTION":"Gang Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.7","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*H-----*****","DESCRIPTION":"Jail Break/Escape Custody SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.8","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*I-----*****","DESCRIPTION":"Rock Throwing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.9","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*J-----*****","DESCRIPTION":"Illegal Selling/Purchasing/Distributing/Black Market SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.10","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*K-----*****","DESCRIPTION":"Surveillance SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.11","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*L-----*****","DESCRIPTION":"Lights SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.12","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*M-----*****","DESCRIPTION":"Border Crossing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.13","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*N-----*****","DESCRIPTION":"Border Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.14","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*O-----*****","DESCRIPTION":"Smuggling SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.15","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*P-----*****","DESCRIPTION":"Exfiltration SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.16","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Q-----*****","DESCRIPTION":"Infiltration SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.17","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*R-----*****","DESCRIPTION":"Auto Theft SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.18","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*S-----*****","DESCRIPTION":"Auto Accident SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.19","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*T-----*****","DESCRIPTION":"Looting SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.20","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*U-----*****","DESCRIPTION":"Theft SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.21","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*V-----*****","DESCRIPTION":"Robbery SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.22","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*X-----*****","DESCRIPTION":"Shooting (Non Deadly) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.24","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*W-----*****","DESCRIPTION":"Home Eviction SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.23","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Y-----*****","DESCRIPTION":"Raid SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.25","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Z-----*****","DESCRIPTION":"Sabotage SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.26","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AA----*****","DESCRIPTION":"Warrant Served SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.27","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AB----*****","DESCRIPTION":"Rape SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.28","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AC----*****","DESCRIPTION":"Attempted Rape SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.29","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AD----*****","DESCRIPTION":"Attack(Events) SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.30","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*ADA---*****","DESCRIPTION":"Attack on NGO SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.1","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADB---*****","DESCRIPTION":"Terrorist Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.2","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADC---*****","DESCRIPTION":"Grenade Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.3","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADD---*****","DESCRIPTION":"Rocket Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.4","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*AE----*****","DESCRIPTION":"Explosions SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.31","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AEA---*****","DESCRIPTION":"Explosion (general) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.1","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEB---*****","DESCRIPTION":"Explosion, Mine SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.2","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEC---*****","DESCRIPTION":"Explosion, Grenade SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.3","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AED---*****","DESCRIPTION":"Explosion, Bomb SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.4","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEE---*****","DESCRIPTION":"Explosion, Mortar Fire SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.5","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEF---*****","DESCRIPTION":"Explosion, Incendiary SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.6","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEG---*****","DESCRIPTION":"Explosion, Rocket SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.7","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEH---*****","DESCRIPTION":"Explosion, Improvised Explosive Device (IED) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.8","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEI---*****","DESCRIPTION":"Explosion, Car Bomb SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.9","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEJ---*****","DESCRIPTION":"Suicide Bombing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.10","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AF----*****","DESCRIPTION":"Fighting/Contact SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.32","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AFA---*****","DESCRIPTION":"Fighting (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.1","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AFB---*****","DESCRIPTION":"Coalition vs. Enemy SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.2","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AFC---*****","DESCRIPTION":"Coalition vs. Coalition SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.3","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AG----*****","DESCRIPTION":"Drug Possession SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.33","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AH----*****","DESCRIPTION":"Drug Trafficking SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.34","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AI----*****","DESCRIPTION":"Suspicious Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.35","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AJ----*****","DESCRIPTION":"Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.36","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AK----*****","DESCRIPTION":"Threat SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.37","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AL----*****","DESCRIPTION":"Crater SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.38","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AM----*****","DESCRIPTION":"Pothole SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.39","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AN----*****","DESCRIPTION":"Escalation of Force SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.40","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AO----*****","DESCRIPTION":"Submunitions SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.41","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AP----*****","DESCRIPTION":"Confiscation SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.42","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AQ----*****","DESCRIPTION":"Counter Insurgency SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.43","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AR----*****","DESCRIPTION":"Counter Terrorism SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.44","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AS----*****","DESCRIPTION":"Humanitarian Assistance SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.45","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AT----*****","DESCRIPTION":"Tests of Security SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.46","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AU----*****","DESCRIPTION":"AWOL SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.47","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AV----*****","DESCRIPTION":"Curfew SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.48","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AW----*****","DESCRIPTION":"DUI SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.49","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AX----*****","DESCRIPTION":"Prostitution SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.50","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*Y*------*****","DESCRIPTION":"Organization/Groups SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.11","PATH":"Stability Operations"},{"SYMBOLID":"O*Y*A-----*****","DESCRIPTION":"Organization (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.1","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*B-----*****","DESCRIPTION":"NGO Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.2","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*C-----*****","DESCRIPTION":"Displaced Persons, Refugees SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.3","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*D-----*****","DESCRIPTION":"Terrorist Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.4","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*E-----*****","DESCRIPTION":"Religious Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.5","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*F-----*****","DESCRIPTION":"Group Tribe Cell SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.6","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*G-----*****","DESCRIPTION":"Foreign Fighters SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.7","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*R-----*****","DESCRIPTION":"Red Cross SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.8","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SP----*****","DESCRIPTION":"State Police SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.9","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*LP----*****","DESCRIPTION":"Local Police SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.10","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SH----*****","DESCRIPTION":"Shelter SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.11","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*FM----*****","DESCRIPTION":"FEMA SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.12","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SA----*****","DESCRIPTION":"Staging Area SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.13","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*EP----*****","DESCRIPTION":"Evacuation Point SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.14","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*PD----*****","DESCRIPTION":"Person in Distress SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.15","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*S*------*****","DESCRIPTION":"Structures SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.13","PATH":"Stability Operations"},{"SYMBOLID":"O*S*A-----*****","DESCRIPTION":"Compound/Post/Fort SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.1","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*B-----*****","DESCRIPTION":"House/Residence SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.2","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*C-----*****","DESCRIPTION":"Safe House(Structures) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.3","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*D-----*****","DESCRIPTION":"Church SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.4","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*E-----*****","DESCRIPTION":"Mosque SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.5","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*F-----*****","DESCRIPTION":"Synagogue SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.6","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*G-----*****","DESCRIPTION":"Warehouse/Storage Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.7","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*H-----*****","DESCRIPTION":"Bunker/Underground Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.8","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*I-----*****","DESCRIPTION":"Tents SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.9","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*J-----*****","DESCRIPTION":"Cave SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.10","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*K-----*****","DESCRIPTION":"Camps SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.13.11","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*KA----*****","DESCRIPTION":"Camp (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.1","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*KB----*****","DESCRIPTION":"Displaced Persons/Refugees Camp SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.2","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*KC----*****","DESCRIPTION":"Training Camp SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.3","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*L-----*****","DESCRIPTION":"Prison/Detention Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.12","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*M-----*****","DESCRIPTION":"Police Station SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.13","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*N-----*****","DESCRIPTION":"Palace/Presidential Residence SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.14","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*Q*------*****","DESCRIPTION":"Equipment/Weapons SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.14","PATH":"Stability Operations"},{"SYMBOLID":"O*Q*A-----*****","DESCRIPTION":"Weapons Found SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.1","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*B-----*****","DESCRIPTION":"Weapons Cache SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.2","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*C-----*****","DESCRIPTION":"Weapons Confiscated SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.3","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*D-----*****","DESCRIPTION":"Weapons Sale SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.4","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*E-----*****","DESCRIPTION":"Weapons Market SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.5","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*F-----*****","DESCRIPTION":"Chem/Bio Weapons Cache SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.6","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*G-----*****","DESCRIPTION":"Improvised Explosive Device (IED) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.7","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*H-----*****","DESCRIPTION":"Unexploded Ordnance (UXO) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.8","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*I-----*****","DESCRIPTION":"Horses SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.9","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*J-----*****","DESCRIPTION":"Camels SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.10","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*K-----*****","DESCRIPTION":"Donkeys SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.11","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"E*-*------*****","DESCRIPTION":"Emergency Management Symbols","DRAWCATEGORY":"0","HIERARCHY":"6.X","ALPHAHIERARCHY":"EMS"},{"SYMBOLID":"E*I*------*****","DESCRIPTION":"Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1","ALPHAHIERARCHY":"EMS.INCDNT","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*I*A-----*****","DESCRIPTION":"Civil Disturbance Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.1","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Civil Demonstration","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.1.1","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.CVRIOT","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Civil Displaced Population","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.1.2","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.CVRIOT","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"E*I*AC----*****","DESCRIPTION":"Civil Rioting","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.1.3","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.CVRIOT","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"E*I*B-----*****","DESCRIPTION":"Criminal Activity Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*BC----*****","DESCRIPTION":"Explosion (Bomb)","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.3","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.EXPLN","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"E*I*BD----*****","DESCRIPTION":"Looting","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.4","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.LOOT","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"E*I*C-----*****","DESCRIPTION":"Fire Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.3","ALPHAHIERARCHY":"EMS.INCDNT.FIRE","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*D-----*****","DESCRIPTION":"Hazardous Materiel Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.4","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*E-----*****","DESCRIPTION":"Air Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.5","ALPHAHIERARCHY":"EMS.INCDNT.AIR","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*F-----*****","DESCRIPTION":"Marine Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.6","ALPHAHIERARCHY":"EMS.INCDNT.MRN","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*G-----*****","DESCRIPTION":"Rail Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.7","ALPHAHIERARCHY":"EMS.INCDNT.RAIL","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*H-----*****","DESCRIPTION":"Vehicle Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.8","ALPHAHIERARCHY":"EMS.INCDNT.VEH","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*HA----*****","DESCRIPTION":"Vehicle Accident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.8.1","ALPHAHIERARCHY":"EMS.INCDNT.VEH.ACDNT","PATH":"EEmergency Management Symbols/Incident/Vehicle Incident"},{"SYMBOLID":"E*N*------*****","DESCRIPTION":"Natural Events","DRAWCATEGORY":"0","HIERARCHY":"6.X.2","ALPHAHIERARCHY":"EMS.NATEVT","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*O*------*****","DESCRIPTION":"Operations","DRAWCATEGORY":"0","HIERARCHY":"6.X.3","ALPHAHIERARCHY":"EMS.OPN","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*O*D-----*****","DESCRIPTION":"Law Enforcement Operation","DRAWCATEGORY":"0","HIERARCHY":"6.X.3.4","ALPHAHIERARCHY":"EMS.OPN.LAWENF","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*DJ----*****","DESCRIPTION":"Police","DRAWCATEGORY":"0","HIERARCHY":"6.X.3.4.7","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DJC---H****","DESCRIPTION":"Police Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.7.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL.POLINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Police"},{"SYMBOLID":"E*O*DK----H****","DESCRIPTION":"Prison","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.8","ALPHAHIERARCHY":"EMS.OPN.LAWENF.PRSN","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*F*------H****","DESCRIPTION":"Infrastructure","DRAWCATEGORY":"0","HIERARCHY":"6.X.4","ALPHAHIERARCHY":"EMS.INFSTR","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*F*I-----H****","DESCRIPTION":"Public Venues Infrastructure","DRAWCATEGORY":"0","HIERARCHY":"6.X.4.8","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN","PATH":"Emergency Management Symbols/BLANK"},{"SYMBOLID":"E*F*ID----H****","DESCRIPTION":"Religious Institution","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.8.4","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN.RELIG","PATH":"Emergency Management Symbols/Infrastructure/Public Venues Infrastructure"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.SinglePointMappingsC={"SINGLEPOINTMAPPINGS":{"SYMBOL":[{"SYMBOLID":"NBCNUCFILL****X","MAPPINGP":"1900","MAPPINGA":"1900","DESCRIPTION":"Nuclear Symbol Fill","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"NBCBIOFILL****X","MAPPINGP":"1901","MAPPINGA":"1901","DESCRIPTION":"Bio Symbol Fill","WIDTH":"28","HEIGHT":"39"},{"SYMBOLID":"NBCCMLFILL****X","MAPPINGP":"1902","MAPPINGA":"1902","DESCRIPTION":"Chem Symbol Fill","WIDTH":"22","HEIGHT":"39"},{"SYMBOLID":"SONOBYFILL****X","MAPPINGP":"1904","MAPPINGA":"1904","DESCRIPTION":"Sonobuoy Fill","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"CPOINTFILL****X","MAPPINGP":"1903","MAPPINGA":"1903","DESCRIPTION":"Small circle point fill","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"CHKPNTFILL****X","MAPPINGP":"1905","MAPPINGA":"1905","DESCRIPTION":"Action Points Fill","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"REFPNTFILL****X","MAPPINGP":"1908","MAPPINGA":"1908","DESCRIPTION":"Reference Points Fill","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"DECPNTFILL****X","MAPPINGP":"1909","MAPPINGA":"1909","DESCRIPTION":"Decision Point Fill","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*F*PTS---****X","MAPPINGP":"2162","MAPPINGA":"3162","DESCRIPTION":"Point Single Target","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*T*G-----****X","MAPPINGP":"1999","MAPPINGA":"1999","DESCRIPTION":"Suppress","WIDTH":"62","HEIGHT":"35"},{"SYMBOLID":"G*G*GPPN--****X","MAPPINGP":"2196","MAPPINGA":"3196","DESCRIPTION":"Entry Control Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PTN---****X","MAPPINGP":"2163","MAPPINGA":"3163","DESCRIPTION":"Nuclear Target","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*F*PTC---****X","MAPPINGP":"34","MAPPINGA":"34","DESCRIPTION":"Circular Target","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"G*F*PTR---****X","MAPPINGP":"35","MAPPINGA":"35","DESCRIPTION":"Rectangular Target","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"G*F*PCF---****X","MAPPINGP":"2164","MAPPINGA":"3164","DESCRIPTION":"Fire Support Station","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*F*PCS---****X","MAPPINGP":"2165","MAPPINGA":"3165","DESCRIPTION":"Survey Control Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCB---****X","MAPPINGP":"2166","MAPPINGA":"3166","DESCRIPTION":"Firing Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCR---****X","MAPPINGP":"2167","MAPPINGA":"3167","DESCRIPTION":"Reload Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCH---****X","MAPPINGP":"2168","MAPPINGA":"3168","DESCRIPTION":"Hide Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*F*PCL---****X","MAPPINGP":"2169","MAPPINGA":"3169","DESCRIPTION":"Launch Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PX----****X","MAPPINGP":"2170","MAPPINGA":"3170","DESCRIPTION":"Ambulance Exchange Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PC----****X","MAPPINGP":"2171","MAPPINGA":"3171","DESCRIPTION":"Cannibalization Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PY----****X","MAPPINGP":"2172","MAPPINGA":"3172","DESCRIPTION":"Casualty Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PT----****X","MAPPINGP":"2173","MAPPINGA":"3173","DESCRIPTION":"Civilian Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PD----****X","MAPPINGP":"2174","MAPPINGA":"3174","DESCRIPTION":"Detainee Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PE----****X","MAPPINGP":"2175","MAPPINGA":"3175","DESCRIPTION":"Enemy Prisoner of War (EPW) Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PL----****X","MAPPINGP":"2176","MAPPINGA":"3176","DESCRIPTION":"Logistics Release Point (LRP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PM----****X","MAPPINGP":"2177","MAPPINGA":"3177","DESCRIPTION":"Maintenance Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PR----****X","MAPPINGP":"2178","MAPPINGA":"3178","DESCRIPTION":"Refuel and Resupply Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PU----****X","MAPPINGP":"2179","MAPPINGA":"3179","DESCRIPTION":"Refuel on the Move (ROM) Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PO----****X","MAPPINGP":"2180","MAPPINGA":"3180","DESCRIPTION":"Traffic Control Post (TCP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PI----****X","MAPPINGP":"2181","MAPPINGA":"3181","DESCRIPTION":"Trailer Transfer Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PN----****X","MAPPINGP":"2182","MAPPINGA":"3182","DESCRIPTION":"Unit Maintenance Collection Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSZ---****X","MAPPINGP":"2183","MAPPINGA":"3183","DESCRIPTION":"Supply Points_General","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSA---****X","MAPPINGP":"2184","MAPPINGA":"3184","DESCRIPTION":"Supply Points_Class I","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSB---****X","MAPPINGP":"2185","MAPPINGA":"3185","DESCRIPTION":"Supply Points_Class II","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSC---****X","MAPPINGP":"2186","MAPPINGA":"3186","DESCRIPTION":"Supply Points_Class III","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSD---****X","MAPPINGP":"2187","MAPPINGA":"3187","DESCRIPTION":"Supply Points_Class IV","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSE---****X","MAPPINGP":"2188","MAPPINGA":"3188","DESCRIPTION":"Supply Points_Class V","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSF---****X","MAPPINGP":"2189","MAPPINGA":"3189","DESCRIPTION":"Supply Points_Class VI","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSG---****X","MAPPINGP":"2190","MAPPINGA":"3190","DESCRIPTION":"Supply Points_Class VII","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSH---****X","MAPPINGP":"2191","MAPPINGA":"3191","DESCRIPTION":"Supply Points_Class VIII","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSI---****X","MAPPINGP":"2192","MAPPINGA":"3192","DESCRIPTION":"Supply Points_Class IX","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PSJ---****X","MAPPINGP":"2193","MAPPINGA":"3191","DESCRIPTION":"Supply Points_Class X","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PAS---****X","MAPPINGP":"2194","MAPPINGA":"3194","DESCRIPTION":"Ammunition Supply Point (ASP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PAT---****X","MAPPINGP":"2195","MAPPINGA":"3195","DESCRIPTION":"Ammunition Transfer Point (ATP)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*S*PP----****X","MAPPINGP":"2214","MAPPINGA":"3214","DESCRIPTION":"Medevac Pick-Up Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*DPO---****X","MAPPINGP":"2122","MAPPINGA":"3122","DESCRIPTION":"Observation Post/Outpost","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*G*GPPK--****X","MAPPINGP":"2081","MAPPINGA":"3081","DESCRIPTION":"Checkpoint","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPC--****X","MAPPINGP":"2082","MAPPINGA":"3082","DESCRIPTION":"Contact Point","WIDTH":"22","HEIGHT":"31"},{"SYMBOLID":"G*G*GPPO--****X","MAPPINGP":"2083","MAPPINGA":"3083","DESCRIPTION":"Coordination Point","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPL--****X","MAPPINGP":"2085","MAPPINGA":"3085","DESCRIPTION":"Link-Up Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*OAOF--****X","MAPPINGP":"2129","MAPPINGA":"2129","DESCRIPTION":"Fixed and Prefabricated Obstacles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*OAOM--****X","MAPPINGP":"2130","MAPPINGA":"3130","DESCRIPTION":"Moveable Obstacles","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*M*OAOP--****X","MAPPINGP":"2131","MAPPINGA":"3131","DESCRIPTION":"Moveable and Prefabricated Obstacles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APP---****X","MAPPINGP":"2116","MAPPINGA":"3116","DESCRIPTION":"Air Control Point (ACP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APC---****X","MAPPINGP":"2117","MAPPINGA":"3117","DESCRIPTION":"Communications Checkpoint (CCP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPP--****X","MAPPINGP":"2086","MAPPINGA":"3086","DESCRIPTION":"Passage Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPE--****X","MAPPINGP":"2088","MAPPINGA":"3088","DESCRIPTION":"Release Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPS--****X","MAPPINGP":"2089","MAPPINGA":"3089","DESCRIPTION":"Start Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*OPP---****X","MAPPINGP":"2128","MAPPINGA":"3128","DESCRIPTION":"Point of Departure","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*APU---****X","MAPPINGP":"2118","MAPPINGA":"3118","DESCRIPTION":"Pull-Up Point (PUP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*APD---****X","MAPPINGP":"2119","MAPPINGA":"3119","DESCRIPTION":"Downed Aircrew Pickup-Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPP---****X","MAPPINGP":"2080","MAPPINGA":"3080","DESCRIPTION":"Action Points (General)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPD--****X","MAPPINGP":"2084","MAPPINGA":"3084","DESCRIPTION":"Decision Point","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*G*GPPR--****X","MAPPINGP":"2087","MAPPINGA":"3087","DESCRIPTION":"Rally Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*G*GPPW--****X","MAPPINGP":"2090","MAPPINGA":"3090","DESCRIPTION":"Waypoint","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*NEB---****X","MAPPINGP":"2149","MAPPINGA":"3149","DESCRIPTION":"Biological","WIDTH":"28","HEIGHT":"39"},{"SYMBOLID":"G*M*NEC---****X","MAPPINGP":"2150","MAPPINGA":"3150","DESCRIPTION":"Chemical","WIDTH":"22","HEIGHT":"39"},{"SYMBOLID":"G*M*NDP---****X","MAPPINGP":"2151","MAPPINGA":"3151","DESCRIPTION":"DECON Site/Point (Unspecified)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDT---****X","MAPPINGP":"2153","MAPPINGA":"3153","DESCRIPTION":"DECON Site/Point (Troops)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDE---****X","MAPPINGP":"2154","MAPPINGA":"3154","DESCRIPTION":"DECON Site/Point (Equipment)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDB---****X","MAPPINGP":"2155","MAPPINGA":"3155","DESCRIPTION":"DECON Site/Point (Equipment and Troops)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDD---****X","MAPPINGP":"2157","MAPPINGA":"3157","DESCRIPTION":"DECON Site/Point (Thorough Decontamination)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDA---****X","MAPPINGP":"2152","MAPPINGA":"3152","DESCRIPTION":"Alternate DECON Site/Point (Unspecified)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*NDO---****X","MAPPINGP":"2156","MAPPINGA":"3156","DESCRIPTION":"DECON Site/Point (Operational Decontamination)","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*T*D-----****X","MAPPINGP":"2000","MAPPINGA":"2000","DESCRIPTION":"Destroy","WIDTH":"62","HEIGHT":"36"},{"SYMBOLID":"G*T*I-----****X","MAPPINGP":"2001","MAPPINGA":"3001","DESCRIPTION":"Interdict","WIDTH":"60","HEIGHT":"38"},{"SYMBOLID":"G*T*N-----****X","MAPPINGP":"2002","MAPPINGA":"3002","DESCRIPTION":"Neutralize","WIDTH":"62","HEIGHT":"36"},{"SYMBOLID":"G*G*PN----****X","MAPPINGP":"2120","MAPPINGA":"3120","DESCRIPTION":"Dummy Minefield - Static","WIDTH":"48","HEIGHT":"41"},{"SYMBOLID":"G*G*DPT---****X","MAPPINGP":"2121","MAPPINGA":"3121","DESCRIPTION":"Target Reference","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*DPOC--****X","MAPPINGP":"2123","MAPPINGA":"3123","DESCRIPTION":"Combat Outpost","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"G*G*DPOR--****X","MAPPINGP":"2124","MAPPINGA":"3124","DESCRIPTION":"Observation Post Occupied by Dismounted Scouts or Reconnaissance","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPOF--****X","MAPPINGP":"2125","MAPPINGA":"3125","DESCRIPTION":"Forward Observation Position","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPOS--****X","MAPPINGP":"2126","MAPPINGA":"3126","DESCRIPTION":"Sensor Outpost/Listening Post (OP/LP)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*G*DPON--****X","MAPPINGP":"2127","MAPPINGA":"3127","DESCRIPTION":"NBC Observation Post (Dismounted)","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"G*M*OB----****X","MAPPINGP":"2132","MAPPINGA":"3132","DESCRIPTION":"Booby Trap","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"G*M*OMU---****X","MAPPINGP":"2133","MAPPINGA":"2133","DESCRIPTION":"Unspecified Mine","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*M*OMT---****X","MAPPINGP":"2134","MAPPINGA":"2134","DESCRIPTION":"Antitank Mine (AT)","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*M*OMD---****X","MAPPINGP":"2135","MAPPINGA":"2135","DESCRIPTION":"Antitank Mine with Antihandling Device","WIDTH":"24","HEIGHT":"44"},{"SYMBOLID":"G*M*OME---****X","MAPPINGP":"2136","MAPPINGA":"2136","DESCRIPTION":"Antitank Mine (Directional)","WIDTH":"24","HEIGHT":"53"},{"SYMBOLID":"G*M*OMP---****X","MAPPINGP":"2137","MAPPINGA":"2137","DESCRIPTION":"Antipersonnel (AP) Mines","WIDTH":"34","HEIGHT":"30"},{"SYMBOLID":"G*M*OMW---****X","MAPPINGP":"2138","MAPPINGA":"2138","DESCRIPTION":"Wide Area Mines","WIDTH":"40","HEIGHT":"33"},{"SYMBOLID":"G*M*OFS---****X","MAPPINGP":"2139","MAPPINGA":"3139","DESCRIPTION":"Static Depiction","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"G*M*OHTL--****X","MAPPINGP":"2140","MAPPINGA":"2140","DESCRIPTION":"Aviation Tower Low","WIDTH":"26","HEIGHT":"33"},{"SYMBOLID":"G*M*OHTH--****X","MAPPINGP":"2141","MAPPINGA":"2141","DESCRIPTION":"Aviation Tower High","WIDTH":"26","HEIGHT":"32"},{"SYMBOLID":"G*M*BCP---****X","MAPPINGP":"2142","MAPPINGA":"3142","DESCRIPTION":"Engineer Regulating Point","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*M*SE----****X","MAPPINGP":"2143","MAPPINGA":"2143","DESCRIPTION":"Small Trench or Fortification","WIDTH":"31","HEIGHT":"30"},{"SYMBOLID":"G*M*SF----****X","MAPPINGP":"2144","MAPPINGA":"3144","DESCRIPTION":"Fort","WIDTH":"44","HEIGHT":"48"},{"SYMBOLID":"G*M*SS----****X","MAPPINGP":"2145","MAPPINGA":"2145","DESCRIPTION":"Surface Shelter","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"G*M*SU----****X","MAPPINGP":"2146","MAPPINGA":"2146","DESCRIPTION":"Underground Shelter","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"G*M*NZ----****X","MAPPINGP":"2147","MAPPINGA":"3147","DESCRIPTION":"Nuclear Detonations Ground Zero","WIDTH":"31","HEIGHT":"39"},{"SYMBOLID":"G*M*NF----****X","MAPPINGP":"2148","MAPPINGA":"3148","DESCRIPTION":"Fallout Producing","WIDTH":"30","HEIGHT":"39"},{"SYMBOLID":"G*G*GPWI--****X","MAPPINGP":"2038","MAPPINGA":"2038","DESCRIPTION":"Impact Point","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-PL----P----","MAPPINGP":"5000","DESCRIPTION":"Low Pressure Center","WIDTH":"24","HEIGHT":"33"},{"SYMBOLID":"WAS-PH----P----","MAPPINGP":"5003","DESCRIPTION":"High Pressure Center","WIDTH":"26","HEIGHT":"34"},{"SYMBOLID":"WAS-TL----P----","MAPPINGP":"5006","DESCRIPTION":"Light Turbulence","WIDTH":"38","HEIGHT":"22"},{"SYMBOLID":"WAS-TM----P----","MAPPINGP":"5007","DESCRIPTION":"Moderate Turbulence","WIDTH":"46","HEIGHT":"22"},{"SYMBOLID":"WAS-TS----P----","MAPPINGP":"5008","DESCRIPTION":"Severe Turbulence","WIDTH":"46","HEIGHT":"28"},{"SYMBOLID":"WAS-TE----P----","MAPPINGP":"5009","DESCRIPTION":"Extreme Turbulence","WIDTH":"46","HEIGHT":"34"},{"SYMBOLID":"WAS-ICL---P----","MAPPINGP":"5011","DESCRIPTION":"Light Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-ICM---P----","MAPPINGP":"5012","DESCRIPTION":"Moderate Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-ICS---P----","MAPPINGP":"5013","DESCRIPTION":"Severe Clear Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRL---P----","MAPPINGP":"5014","DESCRIPTION":"Light Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRM---P----","MAPPINGP":"5015","DESCRIPTION":"Moderate Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IRS---P----","MAPPINGP":"5016","DESCRIPTION":"Severe Rime Icing","WIDTH":"48","HEIGHT":"30"},{"SYMBOLID":"WAS-IML---P----","MAPPINGP":"5017","DESCRIPTION":"Light Mixed Icing","WIDTH":"48","HEIGHT":"54"},{"SYMBOLID":"WAS-IMM---P----","MAPPINGP":"5018","DESCRIPTION":"Moderate Mixed Icing","WIDTH":"60","HEIGHT":"35"},{"SYMBOLID":"WAS-IMS---P----","MAPPINGP":"5019","DESCRIPTION":"Severe Mixed Icing","WIDTH":"60","HEIGHT":"34"},{"SYMBOLID":"WA--W----------","MAPPINGP":"10136","MAPPINGA":"10136","DESCRIPTION":"Wind Barb","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WC----P----","MAPPINGP":"5020","DESCRIPTION":"Calm Winds","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WA--FI---------","MAPPINGP":"10138","MAPPINGA":"10138","DESCRIPTION":"Instrument Ceiling","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-CCCSCSP----","MAPPINGP":"5021","DESCRIPTION":"Clear Sky (SKC)","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSBCP----","MAPPINGP":"5024","DESCRIPTION":"Broken Coverage (BKN)","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WAS-WST-FCP----","MAPPINGP":"5072","DESCRIPTION":"Funnel Cloud (FC) Tornado / Waterspout","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-GSI---P----","MAPPINGP":"5107","DESCRIPTION":"Predominately Ice Covered","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"WAS-WSDD--P----","MAPPINGP":"5087","DESCRIPTION":"Dust Devil","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSFU--P----","MAPPINGP":"5083","DESCRIPTION":"Smoke","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSDB--P----","MAPPINGP":"5088","DESCRIPTION":"Blowing Dust or Sand","WIDTH":"28","HEIGHT":"48"},{"SYMBOLID":"WA-DBAFG----A--","MAPPINGP":"170","MAPPINGA":"170","DESCRIPTION":"Fog","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"G*O*SS----****X","MAPPINGP":"2210","MAPPINGA":"2210","DESCRIPTION":"Sea Anomaly [Wake, Current, Knuckle]","WIDTH":"39","HEIGHT":"31"},{"SYMBOLID":"G*O*SM----****X","MAPPINGP":"2209","MAPPINGA":"2209","DESCRIPTION":"Marine Life","WIDTH":"35","HEIGHT":"12"},{"SYMBOLID":"G*O*SBW---****X","MAPPINGP":"2207","MAPPINGA":"2207","DESCRIPTION":"Wreck, Non-Dangerous","WIDTH":"44","HEIGHT":"24"},{"SYMBOLID":"G*O*SBX---****X","MAPPINGP":"2208","MAPPINGA":"2208","DESCRIPTION":"Wreck, Dangerous","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"G*O*SBN---****X","MAPPINGP":"2206","MAPPINGA":"2206","DESCRIPTION":"Seabed Rock/Stone, Obstacle, Other","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*SBM---****X","MAPPINGP":"2205","MAPPINGA":"2205","DESCRIPTION":"Installation/Manmade","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*SB----****X","MAPPINGP":"2204","MAPPINGA":"2204","DESCRIPTION":"Bottom Return/Nombo","WIDTH":"30","HEIGHT":"22"},{"SYMBOLID":"G*O*HM----****X","MAPPINGP":"2201","MAPPINGA":"2201","DESCRIPTION":"Sea Mine-Like","WIDTH":"22","HEIGHT":"22"},{"SYMBOLID":"G*O*HO----****X","MAPPINGP":"2203","MAPPINGA":"2203","DESCRIPTION":"Oil Rig","WIDTH":"30","HEIGHT":"18"},{"SYMBOLID":"G*O*HI----****X","MAPPINGP":"2202","MAPPINGA":"2202","DESCRIPTION":"Iceberg","WIDTH":"36","HEIGHT":"27"},{"SYMBOLID":"G*O*FO----****X","MAPPINGP":"2213","MAPPINGA":"2213","DESCRIPTION":"Electro-Optical","WIDTH":"30","HEIGHT":"29"},{"SYMBOLID":"G*O*FE----****X","MAPPINGP":"2212","MAPPINGA":"2212","DESCRIPTION":"Electro-Magnetic","WIDTH":"31","HEIGHT":"29"},{"SYMBOLID":"G*O*FA----****X","MAPPINGP":"2211","MAPPINGA":"2211","DESCRIPTION":"Acoustic","WIDTH":"28","HEIGHT":"29"},{"SYMBOLID":"G*O*EP----****X","MAPPINGP":"2199","MAPPINGA":"2199","DESCRIPTION":"Person In Water","WIDTH":"32","HEIGHT":"20"},{"SYMBOLID":"G*O*ED----****X","MAPPINGP":"2198","MAPPINGA":"2198","DESCRIPTION":"Ditched Aircraft","WIDTH":"44","HEIGHT":"35"},{"SYMBOLID":"G*O*ES----****X","MAPPINGP":"2197","MAPPINGA":"3197","DESCRIPTION":"Emergency Distress Call","WIDTH":"24","HEIGHT":"45"},{"SYMBOLID":"G*O*EV----****X","MAPPINGP":"2200","MAPPINGA":"2200","DESCRIPTION":"Distressed Vessel","WIDTH":"52","HEIGHT":"37"},{"SYMBOLID":"G*G*GPWP--****X","MAPPINGP":"2039","MAPPINGA":"2039","DESCRIPTION":"Predicted Impact Point","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"G*G*GPWM--****X","MAPPINGP":"2037","MAPPINGA":"3037","DESCRIPTION":"MSL Detect Point","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"G*G*GPWG--****X","MAPPINGP":"2036","MAPPINGA":"2036","DESCRIPTION":"Ground Zero","WIDTH":"34","HEIGHT":"43"},{"SYMBOLID":"G*G*GPWE--****X","MAPPINGP":"2035","MAPPINGA":"3035","DESCRIPTION":"Entry Point","WIDTH":"62","HEIGHT":"34"},{"SYMBOLID":"G*G*GPWD--****X","MAPPINGP":"2034","MAPPINGA":"3034","DESCRIPTION":"Drop Point","WIDTH":"44","HEIGHT":"38"},{"SYMBOLID":"G*G*GPWA--****X","MAPPINGP":"2033","MAPPINGA":"3033","DESCRIPTION":"Aim Point","WIDTH":"47","HEIGHT":"47"},{"SYMBOLID":"G*G*GPUUS-****X","MAPPINGP":"2006","MAPPINGA":"2006","DESCRIPTION":"Sinker","WIDTH":"30","HEIGHT":"31"},{"SYMBOLID":"G*G*GPUUL-****X","MAPPINGP":"2005","MAPPINGA":"2005","DESCRIPTION":"Lost Contact","WIDTH":"24","HEIGHT":"30"},{"SYMBOLID":"G*G*GPUUD-****X","MAPPINGP":"2003","MAPPINGA":"2003","DESCRIPTION":"Datum","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"G*G*GPUUB-****X","MAPPINGP":"2004","MAPPINGA":"2004","DESCRIPTION":"Brief Contact","WIDTH":"24","HEIGHT":"30"},{"SYMBOLID":"G*G*GPUYV-****X","MAPPINGP":"2015","MAPPINGA":"3015","DESCRIPTION":"Vertical Line Array DIFAR (VLAD)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYR-****X","MAPPINGP":"2017","MAPPINGA":"3017","DESCRIPTION":"Range Only [RO]","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYP-****X","MAPPINGP":"2008","MAPPINGA":"3008","DESCRIPTION":"Pattern Center","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYL-****X","MAPPINGP":"2010","MAPPINGA":"3010","DESCRIPTION":"Low Frequency Analyzing and Recording (LOFAR)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYC-****X","MAPPINGP":"2011","MAPPINGA":"3011","DESCRIPTION":"Command Active Sonobouy System (CASS)","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYK-****X","MAPPINGP":"2018","MAPPINGA":"3018","DESCRIPTION":"Kingpin","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYX-****X","MAPPINGP":"2019","MAPPINGA":"3019","DESCRIPTION":"Expired","WIDTH":"50","HEIGHT":"51"},{"SYMBOLID":"G*G*GPUYD-****X","MAPPINGP":"2009","MAPPINGA":"3009","DESCRIPTION":"Directional Frequency Analyzing and Recording [DIFAR]","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYS-****X","MAPPINGP":"2012","MAPPINGA":"3012","DESCRIPTION":"Directional Command Active Sonobuoy System [DICASS]","WIDTH":"25","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYB-****X","MAPPINGP":"2013","MAPPINGA":"3013","DESCRIPTION":"Bathythermograph Transmitting [BT]","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYT-****X","MAPPINGP":"2016","MAPPINGA":"3016","DESCRIPTION":"ATAC","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUYA-****X","MAPPINGP":"2014","MAPPINGA":"3014","DESCRIPTION":"ANM","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUSC-****X","MAPPINGP":"2023","MAPPINGA":"2023","DESCRIPTION":"Search Center","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*GPUSA-****X","MAPPINGP":"2021","MAPPINGA":"2021","DESCRIPTION":"Search Area","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPUSD-****X","MAPPINGP":"2022","MAPPINGA":"2022","DESCRIPTION":"Dip Position","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPOW--****X","MAPPINGP":"2049","MAPPINGA":"3049","DESCRIPTION":"Waypoint","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPOZ--****X","MAPPINGP":"2047","MAPPINGA":"3047","DESCRIPTION":"Rendezvous","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"G*G*GPOR--****X","MAPPINGP":"2051","MAPPINGA":"3051","DESCRIPTION":"Point R","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPOP--****X","MAPPINGP":"2050","MAPPINGA":"3050","DESCRIPTION":"PIM","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"G*G*GPOD--****X","MAPPINGP":"2048","MAPPINGA":"3048","DESCRIPTION":"Diversions","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"G*G*GPRS--****X","MAPPINGP":"2025","MAPPINGA":"3025","DESCRIPTION":"Special Point","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRI--****X","MAPPINGP":"2032","MAPPINGA":"2032","DESCRIPTION":"Point of Interest","WIDTH":"24","HEIGHT":"43"},{"SYMBOLID":"G*G*GPR---****X","MAPPINGP":"2024","MAPPINGA":"2024","DESCRIPTION":"Reference Point","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRN--****X","MAPPINGP":"2026","MAPPINGA":"3026","DESCRIPTION":"Nav Reference","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRD--****X","MAPPINGP":"2027","MAPPINGA":"3027","DESCRIPTION":"DLRP","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRP--****X","MAPPINGP":"2028","MAPPINGA":"3028","DESCRIPTION":"PIM","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRM--****X","MAPPINGP":"2029","MAPPINGA":"3029","DESCRIPTION":"Marshall Point","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRW--****X","MAPPINGP":"2030","MAPPINGA":"3030","DESCRIPTION":"Waypoint","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPRC--****X","MAPPINGP":"2031","MAPPINGA":"3031","DESCRIPTION":"Corridor Tab","WIDTH":"32","HEIGHT":"31"},{"SYMBOLID":"G*G*GPHY--****X","MAPPINGP":"2044","MAPPINGA":"3044","DESCRIPTION":"Point Y","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHX--****X","MAPPINGP":"2045","MAPPINGA":"3045","DESCRIPTION":"Point X","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHQ--****X","MAPPINGP":"2042","MAPPINGA":"3042","DESCRIPTION":"Point Q","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPHA--****X","MAPPINGP":"2043","MAPPINGA":"3043","DESCRIPTION":"Point A","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPAO--****X","MAPPINGP":"2059","MAPPINGA":"3059","DESCRIPTION":"Tomcat","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAK--****X","MAPPINGP":"2056","MAPPINGA":"3056","DESCRIPTION":"Tanking","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAT--****X","MAPPINGP":"2055","MAPPINGA":"3055","DESCRIPTION":"TACAN","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAS--****X","MAPPINGP":"2063","MAPPINGA":"3063","DESCRIPTION":"Strike IP","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAB--****X","MAPPINGP":"2065","MAPPINGA":"3065","DESCRIPTION":"SUCAP-fixed wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAC--****X","MAPPINGP":"2066","MAPPINGA":"3066","DESCRIPTION":"SUCAP-rotary wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAD--****X","MAPPINGP":"2067","MAPPINGA":"3067","DESCRIPTION":"MIW-fixed wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAE--****X","MAPPINGP":"2068","MAPPINGA":"3068","DESCRIPTION":"MIW-rotary wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAF--****X","MAPPINGP":"2069","MAPPINGA":"3069","DESCRIPTION":"(UAS/UA)","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAG--****X","MAPPINGP":"2070","MAPPINGA":"3070","DESCRIPTION":"VTUA","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAI--****X","MAPPINGP":"2071","MAPPINGA":"3071","DESCRIPTION":"Orbit","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAJ--****X","MAPPINGP":"2072","MAPPINGA":"3072","DESCRIPTION":"Orbit - F8","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAM--****X","MAPPINGP":"2073","MAPPINGA":"3073","DESCRIPTION":"Orbit - RT","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAN--****X","MAPPINGP":"2074","MAPPINGA":"3074","DESCRIPTION":"Orbit - RC","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAR--****X","MAPPINGP":"2060","MAPPINGA":"3060","DESCRIPTION":"Rescue","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAL--****X","MAPPINGP":"2061","MAPPINGA":"3061","DESCRIPTION":"Replenish","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPA---****X","MAPPINGP":"2052","MAPPINGA":"3052","DESCRIPTION":"Air Control","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAP--****X","MAPPINGP":"2053","MAPPINGA":"3053","DESCRIPTION":"Combat Air Patrol (CAP)","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAH--****X","MAPPINGP":"2058","MAPPINGA":"3058","DESCRIPTION":"Antisubmarine Warfare, Rotary Wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAA--****X","MAPPINGP":"2057","MAPPINGA":"3057","DESCRIPTION":"Antisubmarine Warfare, Fixed Wing","WIDTH":"29","HEIGHT":"42"},{"SYMBOLID":"G*G*GPAW--****X","MAPPINGP":"2054","MAPPINGA":"3054","DESCRIPTION":"Airborne Early Warning (AEW)","WIDTH":"30","HEIGHT":"42"},{"SYMBOLID":"WAS-PC----P----","MAPPINGP":"5001","DESCRIPTION":"Cyclone Center","WIDTH":"26","HEIGHT":"33"},{"SYMBOLID":"WAS-PLT---P----","MAPPINGP":"5002","DESCRIPTION":"Tropopause Low","WIDTH":"28","HEIGHT":"26"},{"SYMBOLID":"WAS-PA----P----","MAPPINGP":"5004","DESCRIPTION":"Anticyclone Center","WIDTH":"26","HEIGHT":"33"},{"SYMBOLID":"WAS-PHT---P----","MAPPINGP":"5005","DESCRIPTION":"Tropopause High","WIDTH":"28","HEIGHT":"26"},{"SYMBOLID":"WAS-T-MW--P----","MAPPINGP":"5010","DESCRIPTION":"Mountain Waves","WIDTH":"24","HEIGHT":"12"},{"SYMBOLID":"WAS-CCCSFCP----","MAPPINGP":"5022","DESCRIPTION":"Few Coverage","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSSCP----","MAPPINGP":"5023","DESCRIPTION":"Scattered Coverage","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WAS-CCCSOCP----","MAPPINGP":"5025","DESCRIPTION":"Overcast Coverage","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-CCCSOBP----","MAPPINGP":"5026","DESCRIPTION":"Sky Totally or Partially Obscured","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"WAS-WSR-LIP----","MAPPINGP":"5027","DESCRIPTION":"Intermittent Light Rain","WIDTH":"10","HEIGHT":"10"},{"SYMBOLID":"WAS-WSR-LCP----","MAPPINGP":"5028","DESCRIPTION":"Continuous Light Rain","WIDTH":"36","HEIGHT":"10"},{"SYMBOLID":"WAS-WSR-MIP----","MAPPINGP":"5029","DESCRIPTION":"Intermittent Moderate Rain","WIDTH":"10","HEIGHT":"27"},{"SYMBOLID":"WAS-WSR-MCP----","MAPPINGP":"5030","DESCRIPTION":"Continuous Moderate Rain","WIDTH":"26","HEIGHT":"22"},{"SYMBOLID":"WAS-WSR-HIP----","MAPPINGP":"5031","DESCRIPTION":"Intermittent Heavy Rain","WIDTH":"10","HEIGHT":"30"},{"SYMBOLID":"WAS-WSR-HCP----","MAPPINGP":"5032","DESCRIPTION":"Continuous Heavy Rain","WIDTH":"34","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRFL-P----","MAPPINGP":"5033","DESCRIPTION":"Light Freezing Rain","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSRFMHP----","MAPPINGP":"5034","DESCRIPTION":"Moderate/Heavy Freezing Rain","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSRSL-P----","MAPPINGP":"5035","DESCRIPTION":"Light Rain Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRSMHP----","MAPPINGP":"5036","DESCRIPTION":"Moderate/Heavy Rain Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSRST-P----","MAPPINGP":"5037","DESCRIPTION":"Torrential Rain Showers","WIDTH":"12","HEIGHT":"37"},{"SYMBOLID":"WAS-WSD-LIP----","MAPPINGP":"5038","DESCRIPTION":"Intermittent Light Drizzle","WIDTH":"8","HEIGHT":"14"},{"SYMBOLID":"WAS-WSD-LCP----","MAPPINGP":"5039","DESCRIPTION":"Continuous Light Drizzle","WIDTH":"21","HEIGHT":"14"},{"SYMBOLID":"WAS-WSD-MIP----","MAPPINGP":"5040","DESCRIPTION":"Intermittent Moderate Drizzle","WIDTH":"8","HEIGHT":"32"},{"SYMBOLID":"WAS-WSD-MCP----","MAPPINGP":"5041","DESCRIPTION":"Continuous Moderate Drizzle","WIDTH":"21","HEIGHT":"29"},{"SYMBOLID":"WAS-WSD-HIP----","MAPPINGP":"5042","DESCRIPTION":"Intermittent Heavy Drizzle","WIDTH":"8","HEIGHT":"44"},{"SYMBOLID":"WAS-WSD-HCP----","MAPPINGP":"5043","DESCRIPTION":"Continuous Heavy Drizzle","WIDTH":"27","HEIGHT":"34"},{"SYMBOLID":"WAS-WSDFL-P----","MAPPINGP":"5044","DESCRIPTION":"Light Freezing Drizzle","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSDFMHP----","MAPPINGP":"5045","DESCRIPTION":"Moderate/Heavy Freezing Drizzle","WIDTH":"48","HEIGHT":"26"},{"SYMBOLID":"WAS-WSM-L-P----","MAPPINGP":"5046","DESCRIPTION":"Light Rain or Drizzle and Snow","WIDTH":"16","HEIGHT":"33"},{"SYMBOLID":"WAS-WSM-MHP----","MAPPINGP":"5047","DESCRIPTION":"Moderate Heavy Rain or Drizzle and Snow","WIDTH":"16","HEIGHT":"52"},{"SYMBOLID":"WAS-WSMSL-P----","MAPPINGP":"5048","DESCRIPTION":"Light Rain and Snow Showers","WIDTH":"16","HEIGHT":"53"},{"SYMBOLID":"WAS-WSMSMHP----","MAPPINGP":"5049","DESCRIPTION":"Moderate/Heavy Rain and Snow Showers","WIDTH":"16","HEIGHT":"52"},{"SYMBOLID":"WAS-WSS-LIP----","MAPPINGP":"5050","DESCRIPTION":"Intermittent Light Snow","WIDTH":"16","HEIGHT":"18"},{"SYMBOLID":"WAS-WSS-LCP----","MAPPINGP":"5051","DESCRIPTION":"Continuous Light Snow","WIDTH":"35","HEIGHT":"18"},{"SYMBOLID":"WAS-WSS-MIP----","MAPPINGP":"5052","DESCRIPTION":"Intermittent Moderate Snow","WIDTH":"16","HEIGHT":"39"},{"SYMBOLID":"WAS-WSS-MCP----","MAPPINGP":"5053","DESCRIPTION":"Continuous Moderate Snow","WIDTH":"35","HEIGHT":"40"},{"SYMBOLID":"WAS-WSS-HIP----","MAPPINGP":"5054","DESCRIPTION":"Intermittent Heavy Snow","WIDTH":"16","HEIGHT":"60"},{"SYMBOLID":"WAS-WSS-HCP----","MAPPINGP":"5055","DESCRIPTION":"Continuous Heavy Snow","WIDTH":"35","HEIGHT":"60"},{"SYMBOLID":"WAS-WSSBLMP----","MAPPINGP":"5056","DESCRIPTION":"Light/Moderate Blowing Snow","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"WAS-WSSBH-P----","MAPPINGP":"5057","DESCRIPTION":"Heavy Blowing Snow","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"WAS-WSSG--P----","MAPPINGP":"5058","DESCRIPTION":"Snow Grains (SG)","WIDTH":"42","HEIGHT":"19"},{"SYMBOLID":"WAS-WSSSL-P----","MAPPINGP":"5059","DESCRIPTION":"Light Snow Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSSSMHP----","MAPPINGP":"5060","DESCRIPTION":"Moderate/Heavy Snow Showers","WIDTH":"12","HEIGHT":"27"},{"SYMBOLID":"WAS-WSGRL-P----","MAPPINGP":"5061","DESCRIPTION":"Hail - Light not Associated With Thunder","WIDTH":"12","HEIGHT":"28"},{"SYMBOLID":"WAS-WSGRMHP----","MAPPINGP":"5062","DESCRIPTION":"Hail - Moderate/Heavy not Associated With Thunder","WIDTH":"12","HEIGHT":"28"},{"SYMBOLID":"WAS-WSIC--P----","MAPPINGP":"5063","DESCRIPTION":"Ice Crystals (DD)","WIDTH":"50","HEIGHT":"14"},{"SYMBOLID":"WAS-WSPLL-P----","MAPPINGP":"5064","DESCRIPTION":"Light Ice Pellets","WIDTH":"24","HEIGHT":"19"},{"SYMBOLID":"WAS-WSPLM-P----","MAPPINGP":"5065","DESCRIPTION":"Moderate Ice Pellets","WIDTH":"33","HEIGHT":"30"},{"SYMBOLID":"WAS-WSPLH-P----","MAPPINGP":"5066","DESCRIPTION":"Heavy Ice Pellets","WIDTH":"34","HEIGHT":"41"},{"SYMBOLID":"WAS-WST-NPP----","MAPPINGP":"5067","DESCRIPTION":"Thunderstorm - No Precipitation","WIDTH":"49","HEIGHT":"42"},{"SYMBOLID":"WAS-WSTMR-P----","MAPPINGP":"5068","DESCRIPTION":"Thunderstorm Light to Moderate With Rain/Snow - No Hail","WIDTH":"26","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTHR-P----","MAPPINGP":"5069","DESCRIPTION":"Thunderstorm Heavy With Rain/Snow - No Hail","WIDTH":"28","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTMH-P----","MAPPINGP":"5070","DESCRIPTION":"Thunderstorm Light to Moderate - With Hail","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"WAS-WSTHH-P----","MAPPINGP":"5071","DESCRIPTION":"Thunderstorm Heavy - With Hail","WIDTH":"25","HEIGHT":"48"},{"SYMBOLID":"WAS-WST-SQP----","MAPPINGP":"5073","DESCRIPTION":"Squall","WIDTH":"24","HEIGHT":"28"},{"SYMBOLID":"WAS-WST-LGP----","MAPPINGP":"5074","DESCRIPTION":"Lightning","WIDTH":"32","HEIGHT":"42"},{"SYMBOLID":"WAS-WSFGPSP----","MAPPINGP":"5075","DESCRIPTION":"Fog - Shallow Patches","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGCSP----","MAPPINGP":"5076","MAPPINGA":"7","DESCRIPTION":"Fog - Shallow Continuous","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGP-P----","MAPPINGP":"5077","DESCRIPTION":"Fog - Patchy","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGSVP----","MAPPINGP":"5078","DESCRIPTION":"Fog - Sky Visible","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGSOP----","MAPPINGP":"5079","DESCRIPTION":"Fog - Sky Obscured","WIDTH":"28","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGFVP----","MAPPINGP":"5080","DESCRIPTION":"Fog - Freezing, Sky Visible","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WAS-WSFGFOP----","MAPPINGP":"5081","DESCRIPTION":"Fog - Freezing, Sky Not Visible","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WAS-WSBR--P----","MAPPINGP":"5082","DESCRIPTION":"Mist","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WSHZ--P----","MAPPINGP":"5084","DESCRIPTION":"Haze","WIDTH":"48","HEIGHT":"22"},{"SYMBOLID":"WAS-WSDSLMP----","MAPPINGP":"5085","DESCRIPTION":"Light to Moderate Dust/Sand Storm","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-WSDSS-P----","MAPPINGP":"5086","DESCRIPTION":"Severe Dust/Sand Storm","WIDTH":"42","HEIGHT":"42"},{"SYMBOLID":"WAS-WSBD--P----","MAPPINGP":"349","MAPPINGA":"349","DESCRIPTION":"Blowing Dust or Sand","WIDTH":"26","HEIGHT":"43"},{"SYMBOLID":"WAS-WSTSD-P----","MAPPINGP":"5089","DESCRIPTION":"Tropical Depression","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"WAS-WSTSS-P----","MAPPINGP":"5090","DESCRIPTION":"Tropical Storm","WIDTH":"32","HEIGHT":"52"},{"SYMBOLID":"WAS-WSTSH-P----","MAPPINGP":"5091","DESCRIPTION":"Hurricane/Typhoon","WIDTH":"32","HEIGHT":"52"},{"SYMBOLID":"WAS-WSVE--P----","MAPPINGP":"5092","DESCRIPTION":"Volcanic Eruption","WIDTH":"31","HEIGHT":"37"},{"SYMBOLID":"WAS-WSVA--P----","MAPPINGP":"5093","DESCRIPTION":"Volcanic Ash","WIDTH":"26","HEIGHT":"27"},{"SYMBOLID":"WAS-WST-LVP----","MAPPINGP":"5094","DESCRIPTION":"Tropopause Level","WIDTH":"50","HEIGHT":"28"},{"SYMBOLID":"WAS-WSF-LVP----","MAPPINGP":"5095","DESCRIPTION":"Freezing Level","WIDTH":"50","HEIGHT":"28"},{"SYMBOLID":"WAS-WSUKP-P----","MAPPINGP":"5096","DESCRIPTION":"Precipitation of Unknown Type and Intensity","WIDTH":"48","HEIGHT":"25"},{"SYMBOLID":"WAS-GND-NCP----","MAPPINGP":"5097","DESCRIPTION":"Loose Sand","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNM---P----","MAPPINGP":"5098","DESCRIPTION":"Surface Moist","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNW-SWP----","MAPPINGP":"5099","DESCRIPTION":"Surface Wet, Standing Water in Small or Large Pools","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNFL--P----","MAPPINGP":"5100","DESCRIPTION":"Surface Flooded","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNFZ--P----","MAPPINGP":"5101","DESCRIPTION":"Surface Frozen","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNG-TIP----","MAPPINGP":"5102","DESCRIPTION":"Glaze (Thin Ice) on Ground","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNLDN-P----","MAPPINGP":"5103","DESCRIPTION":"Loose Dry Dust or Sand not Covering Ground Completely","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GNLDTCP----","MAPPINGP":"5104","DESCRIPTION":"Thin Loose Dry Dust or Sand Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNLDMCP----","MAPPINGP":"5105","DESCRIPTION":"Moderae/Thick Loose Dry Dust or Sand Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GNDEWCP----","MAPPINGP":"5106","DESCRIPTION":"Extremely Dry With Cracks","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSCL-P----","MAPPINGP":"5108","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering Less than One-Half of Ground","WIDTH":"33","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSCH-P----","MAPPINGP":"5109","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering At Least One-Half Ground, but Ground not Completely Covered","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSCCEP----","MAPPINGP":"5110","DESCRIPTION":"Even Layer of Compact or Wet Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSCCUP----","MAPPINGP":"5111","DESCRIPTION":"Uneven Layer of Compact or Wet Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSLL-P----","MAPPINGP":"5112","DESCRIPTION":"Loose Dry Snow Covering Less than One-Half of Ground","WIDTH":"33","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSLH-P----","MAPPINGP":"5113","DESCRIPTION":"Loose Dry Snow Covering at Least One-Half Ground, but Ground not Completely Covered","WIDTH":"36","HEIGHT":"38"},{"SYMBOLID":"WAS-GSSLCEP----","MAPPINGP":"5114","DESCRIPTION":"Even Layer of Loose Dry Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSLCUP----","MAPPINGP":"5115","DESCRIPTION":"Uneven Layer of Loose Dry Snow Covering Ground Completely","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WAS-GSSDC-P----","MAPPINGP":"5116","DESCRIPTION":"Snow Covering Ground Completely; Deep Drifts","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WOS-IB----P----","MAPPINGP":"5117","DESCRIPTION":"Icebergs","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBM---P----","MAPPINGP":"5118","DESCRIPTION":"Many Icebergs","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-IBBS--P----","MAPPINGP":"5119","DESCRIPTION":"Belts and Strips","WIDTH":"36","HEIGHT":"10"},{"SYMBOLID":"WOS-IBG---P----","MAPPINGP":"5120","DESCRIPTION":"Iceberg - General","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBMG--P----","MAPPINGP":"5121","DESCRIPTION":"Many Icebergs - General","WIDTH":"36","HEIGHT":"29"},{"SYMBOLID":"WOS-IBBB--P----","MAPPINGP":"5122","DESCRIPTION":"Bergy Bit","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-IBBBM-P----","MAPPINGP":"5123","DESCRIPTION":"Many Bergy Bits","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-IBGL--P----","MAPPINGP":"5124","DESCRIPTION":"Growler","WIDTH":"30","HEIGHT":"24"},{"SYMBOLID":"WOS-IBGLM-P----","MAPPINGP":"5125","DESCRIPTION":"Many Growlers","WIDTH":"30","HEIGHT":"24"},{"SYMBOLID":"WOS-IBF---P----","MAPPINGP":"5126","DESCRIPTION":"Floeberg","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-IBII--P----","MAPPINGP":"5127","DESCRIPTION":"Ice Island","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-ICWB--P----","MAPPINGP":"5128","DESCRIPTION":"Bergy Water","WIDTH":"48","HEIGHT":"17"},{"SYMBOLID":"WOS-ICWR--P----","MAPPINGP":"5129","DESCRIPTION":"Water With Radar Targets","WIDTH":"48","HEIGHT":"16"},{"SYMBOLID":"WOS-ICIF--P----","MAPPINGP":"5130","DESCRIPTION":"Ice Free","WIDTH":"36","HEIGHT":"14"},{"SYMBOLID":"WOS-IDC---P----","MAPPINGP":"5131","DESCRIPTION":"Convergence","WIDTH":"42","HEIGHT":"8"},{"SYMBOLID":"WOS-IDD---P----","MAPPINGP":"5132","DESCRIPTION":"Divergence","WIDTH":"42","HEIGHT":"8"},{"SYMBOLID":"WOS-IDS---P----","MAPPINGP":"5133","DESCRIPTION":"Shearing or Shear Zone","WIDTH":"20","HEIGHT":"18"},{"SYMBOLID":"WO-DIDID---L---","MAPPINGP":"5134","DESCRIPTION":"Ice Drift (Direction)","WIDTH":"20","HEIGHT":"8"},{"SYMBOLID":"WOS-II----P----","MAPPINGP":"5135","DESCRIPTION":"Sea Ice","WIDTH":"25","HEIGHT":"24"},{"SYMBOLID":"WOS-IITM--P----","MAPPINGP":"5136","DESCRIPTION":"Ice Thickness (Observed)","WIDTH":"46","HEIGHT":"40"},{"SYMBOLID":"WOS-IITE--P----","MAPPINGP":"5137","DESCRIPTION":"Ice Thickness (Estimated)","WIDTH":"45","HEIGHT":"40"},{"SYMBOLID":"WOS-IIP---P----","MAPPINGP":"5138","DESCRIPTION":"Melt Puddles or Flooded Ice","WIDTH":"39","HEIGHT":"14"},{"SYMBOLID":"WOS-ISC---P----","MAPPINGP":"5139","DESCRIPTION":"Snow Cover","WIDTH":"17","HEIGHT":"29"},{"SYMBOLID":"WOS-ISS---P----","MAPPINGP":"5140","DESCRIPTION":"Sastrugi (With Orientation)","WIDTH":"29","HEIGHT":"44"},{"SYMBOLID":"WOS-ITRH--P----","MAPPINGP":"5141","DESCRIPTION":"Ridges or Hummocks","WIDTH":"36","HEIGHT":"18"},{"SYMBOLID":"WOS-ITR---P----","MAPPINGP":"5142","DESCRIPTION":"Rafting","WIDTH":"36","HEIGHT":"26"},{"SYMBOLID":"WOS-ITBB--P----","MAPPINGP":"5143","DESCRIPTION":"Jammed Brash Barrier","WIDTH":"36","HEIGHT":"18"},{"SYMBOLID":"WOS-HDS---P----","MAPPINGP":"5144","MAPPINGA":"404","DESCRIPTION":"Soundings","WIDTH":"30","HEIGHT":"32"},{"SYMBOLID":"WOS-HPB-O-P----","MAPPINGP":"5145","DESCRIPTION":"Berths (Onshore)","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WOS-HPB-A-P----","MAPPINGP":"5146","DESCRIPTION":"Berths (Anchor)","WIDTH":"46","HEIGHT":"44"},{"SYMBOLID":"WOS-HPBA--P----","MAPPINGP":"5147","DESCRIPTION":"Anchorage","WIDTH":"46","HEIGHT":"44"},{"SYMBOLID":"WOS-HPCP--P----","MAPPINGP":"5148","DESCRIPTION":"Call in Point","WIDTH":"19","HEIGHT":"36"},{"SYMBOLID":"WOS-HPFH--P----","MAPPINGP":"5149","DESCRIPTION":"Fishing Harbor","WIDTH":"36","HEIGHT":"34"},{"SYMBOLID":"WOS-HPFS--P----","MAPPINGP":"5150","DESCRIPTION":"Fish Stakes/Traps/Weirs","WIDTH":"34","HEIGHT":"32"},{"SYMBOLID":"WOS-HPFS---L---","MAPPINGP":"5151","DESCRIPTION":"Fish Stakes","WIDTH":"36","HEIGHT":"31"},{"SYMBOLID":"WOS-HPML--P----","MAPPINGP":"5152","DESCRIPTION":"Landing Place","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"WO-DHPMO--P----","MAPPINGP":"5153","DESCRIPTION":"Offshore Loading Facility 1","WIDTH":"35","HEIGHT":"33"},{"SYMBOLID":"WO-DHPMO---L---","MAPPINGP":"5154","DESCRIPTION":"Offshore Loading Facility 2","WIDTH":"36","HEIGHT":"4"},{"SYMBOLID":"WOS-HPM-R-P----","MAPPINGP":"5155","MAPPINGA":"5156","DESCRIPTION":"Landing Ring","WIDTH":"36","HEIGHT":"20"},{"SYMBOLID":"WOS-HPM-FC-L---","MAPPINGP":"5157","DESCRIPTION":"Ferry Crossing","WIDTH":"38","HEIGHT":"10"},{"SYMBOLID":"WOS-HPM-CC-L---","MAPPINGP":"5158","DESCRIPTION":"Cable Ferry Crossing","WIDTH":"38","HEIGHT":"10"},{"SYMBOLID":"WOS-HPD---P----","MAPPINGP":"5159","MAPPINGA":"5160","DESCRIPTION":"Dolphin","WIDTH":"36","HEIGHT":"20"},{"SYMBOLID":"WOS-HABA--P----","MAPPINGP":"5161","DESCRIPTION":"Beacon","WIDTH":"36","HEIGHT":"39"},{"SYMBOLID":"WOS-HABB--P----","MAPPINGP":"5162","MAPPINGA":"5163","DESCRIPTION":"Buoy Default","WIDTH":"52","HEIGHT":"34"},{"SYMBOLID":"WOS-HABM--P----","MAPPINGP":"5164","DESCRIPTION":"Marker","WIDTH":"24","HEIGHT":"32"},{"SYMBOLID":"WOS-HABP--P----","MAPPINGP":"5165","DESCRIPTION":"Perches/Stakes","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"WOS-HAL---P----","MAPPINGP":"5166","DESCRIPTION":"Light","WIDTH":"40","HEIGHT":"36"},{"SYMBOLID":"WOS-HALV--P----","MAPPINGP":"5167","DESCRIPTION":"Light Vessel/Lightship","WIDTH":"36","HEIGHT":"32"},{"SYMBOLID":"WOS-HALH--P----","MAPPINGP":"5168","DESCRIPTION":"Lighthouse","WIDTH":"28","HEIGHT":"36"},{"SYMBOLID":"WOS-HHRS--P----","MAPPINGP":"5169","MAPPINGA":"5170","DESCRIPTION":"Rock Submerged","WIDTH":"26","HEIGHT":"26"},{"SYMBOLID":"WOS-HHRA--P----","MAPPINGP":"5171","DESCRIPTION":"Rock Awashed","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDF--P----","MAPPINGP":"5172","DESCRIPTION":"Foul Ground","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WO-DHHDK--P----","MAPPINGP":"5173","DESCRIPTION":"Kelp/Seaweed","WIDTH":"38","HEIGHT":"13"},{"SYMBOLID":"WOS-HHDMDBP----","MAPPINGP":"5174","DESCRIPTION":"Mine-Naval (Doubtful)","WIDTH":"24","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDMDFP----","MAPPINGP":"5175","DESCRIPTION":"Mine-Naval (Definite)","WIDTH":"24","HEIGHT":"36"},{"SYMBOLID":"WOS-HHDS--P----","MAPPINGP":"5176","MAPPINGA":"5177","DESCRIPTION":"Snags/Stumps","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-HHDWA-P----","MAPPINGP":"5178","DESCRIPTION":"Wreck (Uncovers)","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"WOS-HHDWB-P----","MAPPINGP":"5179","MAPPINGA":"5180","DESCRIPTION":"Wreck (Submerged)","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"WOS-HHDE--P----","MAPPINGP":"5181","DESCRIPTION":"Eddies/Overfalls/Tide Rips","WIDTH":"59","HEIGHT":"20"},{"SYMBOLID":"WOS-BFC-S-P----","MAPPINGP":"5182","DESCRIPTION":"Sand","WIDTH":"28","HEIGHT":"37"},{"SYMBOLID":"WOS-BFC-M-P----","MAPPINGP":"5183","DESCRIPTION":"Mud","WIDTH":"38","HEIGHT":"26"},{"SYMBOLID":"WOS-BFC-CLP----","MAPPINGP":"5184","DESCRIPTION":"Clay","WIDTH":"36","HEIGHT":"30"},{"SYMBOLID":"WOS-BFC-SIP----","MAPPINGP":"5185","DESCRIPTION":"Silt","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"WOS-BFC-STP----","MAPPINGP":"5186","DESCRIPTION":"Stones","WIDTH":"36","HEIGHT":"33"},{"SYMBOLID":"WOS-BFC-G-P----","MAPPINGP":"5187","DESCRIPTION":"Gravel","WIDTH":"40","HEIGHT":"42"},{"SYMBOLID":"WOS-BFC-P-P----","MAPPINGP":"5188","DESCRIPTION":"Pebbles","WIDTH":"30","HEIGHT":"30"},{"SYMBOLID":"WOS-BFC-CBP----","MAPPINGP":"5189","DESCRIPTION":"Cobbles","WIDTH":"36","HEIGHT":"26"},{"SYMBOLID":"WOS-BFC-R-P----","MAPPINGP":"5190","DESCRIPTION":"Rock","WIDTH":"30","HEIGHT":"34"},{"SYMBOLID":"WOS-BFC-COP----","MAPPINGP":"5191","DESCRIPTION":"Coral","WIDTH":"36","HEIGHT":"25"},{"SYMBOLID":"WOS-BFC-SHP----","MAPPINGP":"5192","DESCRIPTION":"Shell","WIDTH":"36","HEIGHT":"28"},{"SYMBOLID":"WOS-BFQ-F-P----","MAPPINGP":"5193","DESCRIPTION":"Fine","WIDTH":"26","HEIGHT":"36"},{"SYMBOLID":"WOS-BFQ-M-P----","MAPPINGP":"5194","DESCRIPTION":"Medium","WIDTH":"36","HEIGHT":"25"},{"SYMBOLID":"WOS-BFQ-C-P----","MAPPINGP":"5195","DESCRIPTION":"Coarse","WIDTH":"32","HEIGHT":"36"},{"SYMBOLID":"WOS-TCCW--P----","MAPPINGP":"5196","DESCRIPTION":"Water Turbulence","WIDTH":"60","HEIGHT":"21"},{"SYMBOLID":"WOS-TCCTD-P----","MAPPINGP":"5197","DESCRIPTION":"Tide Data Point","WIDTH":"30","HEIGHT":"36"},{"SYMBOLID":"WOS-TCCTG-P----","MAPPINGP":"5198","MAPPINGA":"5199","DESCRIPTION":"Tide Gauge","WIDTH":"33","HEIGHT":"20"},{"SYMBOLID":"WOS-MF----P----","MAPPINGP":"5200","DESCRIPTION":"Ford","WIDTH":"12","HEIGHT":"34"},{"SYMBOLID":"WOS-ML----P----","MAPPINGP":"5201","DESCRIPTION":"Lock","WIDTH":"22","HEIGHT":"26"},{"SYMBOLID":"WOS-MOA---P----","MAPPINGP":"5202","DESCRIPTION":"Oil/Gas Rig","WIDTH":"31","HEIGHT":"42"},{"SYMBOLID":"WOS-MPA---P----","MAPPINGP":"5203","DESCRIPTION":"Pile/Piling/Post","WIDTH":"24","HEIGHT":"24"},{"SYMBOLID":"G*G*GPUY--****X","MAPPINGP":"2007","MAPPINGA":"3007","DESCRIPTION":"Sonobuoy","WIDTH":"24","HEIGHT":"48"},{"SYMBOLID":"G*G*GPUS--****X","MAPPINGP":"2020","MAPPINGA":"2020","DESCRIPTION":"Search","WIDTH":"39","HEIGHT":"35"},{"SYMBOLID":"G*G*GPF---****X","MAPPINGP":"2040","MAPPINGA":"3040","DESCRIPTION":"Formation","WIDTH":"36","HEIGHT":"36"},{"SYMBOLID":"G*G*GPH---****X","MAPPINGP":"2041","MAPPINGA":"3041","DESCRIPTION":"Harbor (General)","WIDTH":"32","HEIGHT":"23"},{"SYMBOLID":"G*G*GPO---****X","MAPPINGP":"2046","MAPPINGA":"3046","DESCRIPTION":"Route","WIDTH":"36","HEIGHT":"24"},{"SYMBOLID":"G*G*GPPA--****X","MAPPINGP":"2091","MAPPINGA":"3091","DESCRIPTION":"Amnesty Point","WIDTH":"25","HEIGHT":"45"},{"SYMBOLID":"G*G*GPC---****X","MAPPINGP":"2092","MAPPINGA":"3092","DESCRIPTION":"Sea Surface Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCU--****X","MAPPINGP":"2093","MAPPINGA":"3093","DESCRIPTION":"USV Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCUR-****X","MAPPINGP":"2094","MAPPINGA":"3094","DESCRIPTION":"RMV USV Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCUA-****X","MAPPINGP":"2095","MAPPINGA":"3095","DESCRIPTION":"USV ASW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCUS-****X","MAPPINGP":"2096","MAPPINGA":"3096","DESCRIPTION":"USV SUW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCUM-****X","MAPPINGP":"2097","MAPPINGA":"3097","DESCRIPTION":"USV MIW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCA--****X","MAPPINGP":"2098","MAPPINGA":"3098","DESCRIPTION":"ASW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCS--****X","MAPPINGP":"2099","MAPPINGA":"3099","DESCRIPTION":"SUW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCM--****X","MAPPINGP":"2100","MAPPINGA":"3100","DESCRIPTION":"MIW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCP--****X","MAPPINGP":"2101","MAPPINGA":"3101","DESCRIPTION":"Picket Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCR--****X","MAPPINGP":"2102","MAPPINGA":"3102","DESCRIPTION":"Rendezvous Control Point","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCC--****X","MAPPINGP":"2103","MAPPINGA":"3103","DESCRIPTION":"Rescue Control Point","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCE--****X","MAPPINGP":"2104","MAPPINGA":"3104","DESCRIPTION":"Replenishment Control Point","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPCN--****X","MAPPINGP":"2105","MAPPINGA":"3105","DESCRIPTION":"Noncombatant Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPB---****X","MAPPINGP":"2106","MAPPINGA":"2106","DESCRIPTION":"Subsurface Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBU--****X","MAPPINGP":"2107","MAPPINGA":"2107","DESCRIPTION":"UUV Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBUA-****X","MAPPINGP":"2108","MAPPINGA":"2108","DESCRIPTION":"ASW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBUS-****X","MAPPINGP":"2109","MAPPINGA":"2109","DESCRIPTION":"SUW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBUM-****X","MAPPINGP":"2110","MAPPINGA":"2110","DESCRIPTION":"MIW Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBS--****X","MAPPINGP":"2111","MAPPINGA":"2111","DESCRIPTION":"Submarine Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"G*G*GPBSA-****X","MAPPINGP":"2112","MAPPINGA":"2112","DESCRIPTION":"ASW Submarine Control Station","WIDTH":"42","HEIGHT":"29"},{"SYMBOLID":"E*N*AA----*****","MAPPINGP":"6000","DESCRIPTION":"Aftershock","WIDTH":"34","HEIGHT":"34"},{"SYMBOLID":"E*N*AB----*****","MAPPINGP":"6001","DESCRIPTION":"Avalanche","WIDTH":"30","HEIGHT":"35"},{"SYMBOLID":"E*N*AC----*****","MAPPINGP":"6002","DESCRIPTION":"Earthquake Epicenter","WIDTH":"38","HEIGHT":"38"},{"SYMBOLID":"E*N*AD----*****","MAPPINGP":"6003","DESCRIPTION":"Landslide","WIDTH":"39","HEIGHT":"31"},{"SYMBOLID":"E*N*AE----*****","MAPPINGP":"6004","DESCRIPTION":"Subsidence","WIDTH":"42","HEIGHT":"18"},{"SYMBOLID":"E*N*AG----*****","MAPPINGP":"6006","DESCRIPTION":"Volcanic Threat","WIDTH":"34","HEIGHT":"31"},{"SYMBOLID":"E*N*BB----*****","MAPPINGP":"6007","DESCRIPTION":"Drought","WIDTH":"36","HEIGHT":"25"},{"SYMBOLID":"E*N*BC----*****","MAPPINGP":"6008","DESCRIPTION":"Flood","WIDTH":"32","HEIGHT":"27"},{"SYMBOLID":"E*N*BF----*****","MAPPINGP":"6009","DESCRIPTION":"Inversion","WIDTH":"30","HEIGHT":"28"},{"SYMBOLID":"E*N*BM----*****","MAPPINGP":"6010","DESCRIPTION":"Tsunami","WIDTH":"36","HEIGHT":"26"},{"SYMBOLID":"E*N*CA----*****","MAPPINGP":"6011","DESCRIPTION":"Bird Infestation","WIDTH":"40","HEIGHT":"30"},{"SYMBOLID":"E*N*CB----*****","MAPPINGP":"6012","DESCRIPTION":"Insect Infestation","WIDTH":"44","HEIGHT":"26"},{"SYMBOLID":"E*N*CC----*****","MAPPINGP":"6013","DESCRIPTION":"Microbial Infestation","WIDTH":"40","HEIGHT":"18"},{"SYMBOLID":"E*N*CD----*****","MAPPINGP":"6014","DESCRIPTION":"Reptile Infestation","WIDTH":"36","HEIGHT":"22"},{"SYMBOLID":"E*N*CE----*****","MAPPINGP":"6015","DESCRIPTION":"Rodent Infestation","WIDTH":"38","HEIGHT":"28"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.SymbolConstantsC={"SYMBOLCONSTANTS":{"SYMBOL":[{"SYMBOLID":"BS_BASIC_SHAPES","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Basic Shapes","HIERARCHY":"0.X","ALPHAHIERARCHY":"BS"},{"SYMBOLID":"BS_LINE--------","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line","HIERARCHY":"0.X.1","ALPHAHIERARCHY":"BS.LINE","PATH":"Basic Shapes"},{"SYMBOLID":"BS_AREA--------","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area","HIERARCHY":"0.X.2","ALPHAHIERARCHY":"BS.AREA","PATH":"Basic Shapes"},{"SYMBOLID":"BS_CROSS--------","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cross","HIERARCHY":"0.X.3","ALPHAHIERARCHY":"BS.CROSS","PATH":"Basic Shapes"},{"SYMBOLID":"BS_ELLIPSE-----","GEOMETRY":"area","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ellipse","HIERARCHY":"0.X.4","ALPHAHIERARCHY":"BS.ELLIPSE","PATH":"Basic Shapes"},{"SYMBOLID":"BS_RECTANGLE---","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Rectangle","HIERARCHY":"0.X.5","ALPHAHIERARCHY":"BS.RECTANGLE","PATH":"Basic Shapes"},{"SYMBOLID":"BUFFERED_SHAPES","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"AM.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6","ALPHAHIERARCHY":"BS.BBS"},{"SYMBOLID":"BBS_LINE-------","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Line","HIERARCHY":"0.X.6.1","ALPHAHIERARCHY":"BS.BBS.LINE"},{"SYMBOLID":"BBS_AREA-------","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6.2","ALPHAHIERARCHY":"BS.BBS.AREA"},{"SYMBOLID":"BBS_POINT------","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Basic Shapes","HIERARCHY":"0.X.6.2","ALPHAHIERARCHY":"BS.BBS.POINT"},{"SYMBOLID":"BBS_RECTANGLE--","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"AM.T.","DESCRIPTION":"Buffered Rectangle","HIERARCHY":"0.X.6.3","ALPHAHIERARCHY":"BS.BBS.RECT"},{"SYMBOLID":"G*-*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tactical Graphics","HIERARCHY":"2.X","ALPHAHIERARCHY":"TACGRP"},{"SYMBOLID":"G*T*------****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tasks","HIERARCHY":"2.X.1","ALPHAHIERARCHY":"TACGRP.TSK","PATH":"Tactical Graphics"},{"SYMBOLID":"G*T*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Block Task","HIERARCHY":"2.X.1.1","ALPHAHIERARCHY":"TACGRP.TSK.BLK","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*H-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Breach","HIERARCHY":"2.X.1.2","ALPHAHIERARCHY":"TACGRP.TSK.BRH","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*Y-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass","HIERARCHY":"2.X.1.3","ALPHAHIERARCHY":"TACGRP.TSK.BYS","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*C-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Canalize","HIERARCHY":"2.X.1.4","ALPHAHIERARCHY":"TACGRP.TSK.CNZ","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*X-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Clear","HIERARCHY":"2.X.1.5","ALPHAHIERARCHY":"TACGRP.TSK.CLR","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*J-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Contain","HIERARCHY":"2.X.1.6","ALPHAHIERARCHY":"TACGRP.TSK.CNT","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*K-----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Counterattack (CATK)","HIERARCHY":"2.X.1.7","ALPHAHIERARCHY":"TACGRP.TSK.CATK","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*KF----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Counterattack by Fire","HIERARCHY":"2.X.1.7.1","ALPHAHIERARCHY":"TACGRP.TSK.CATK.CATKF","PATH":"Tactical Graphics/Tasks/Counterattack (CATK)"},{"SYMBOLID":"G*T*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"W","DESCRIPTION":"Delay","HIERARCHY":"2.X.1.8","ALPHAHIERARCHY":"TACGRP.TSK.DLY","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*D-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Destroy","HIERARCHY":"2.X.1.9","ALPHAHIERARCHY":"TACGRP.TSK.DSTY","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*T-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Disrupt Tasks","HIERARCHY":"2.X.1.10","ALPHAHIERARCHY":"TACGRP.TSK.DRT","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*F-----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Fix Task","HIERARCHY":"2.X.1.11","ALPHAHIERARCHY":"TACGRP.TSK.FIX","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*A-----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T","DESCRIPTION":"Follow and Assume","HIERARCHY":"2.X.1.12","ALPHAHIERARCHY":"TACGRP.TSK.FLWASS","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*AS----****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Follow and Support","HIERARCHY":"2.X.1.12.1","ALPHAHIERARCHY":"TACGRP.TSK.FLWASS.FLWSUP","PATH":"Tactical Graphics/Tasks/Follow and Assume"},{"SYMBOLID":"G*T*I-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Interdict","HIERARCHY":"2.X.1.13","ALPHAHIERARCHY":"TACGRP.TSK.ITDT","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*E-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Isolate","HIERARCHY":"2.X.1.14","ALPHAHIERARCHY":"TACGRP.TSK.ISL","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*N-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Neutralize","HIERARCHY":"2.X.1.15","ALPHAHIERARCHY":"TACGRP.TSK.NEUT","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*O-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Occupy","HIERARCHY":"2.X.1.16","ALPHAHIERARCHY":"TACGRP.TSK.OCC","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*P-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Penetrate","HIERARCHY":"2.X.1.17","ALPHAHIERARCHY":"TACGRP.TSK.PNE","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*R-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Relief in Place","HIERARCHY":"2.X.1.18","ALPHAHIERARCHY":"TACGRP.TSK.RIP","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*Q-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Retain","HIERARCHY":"2.X.1.19","ALPHAHIERARCHY":"TACGRP.TSK.RTN","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*M-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Retirement","HIERARCHY":"2.X.1.20","ALPHAHIERARCHY":"TACGRP.TSK.RTM","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*S-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Secure","HIERARCHY":"2.X.1.21","ALPHAHIERARCHY":"TACGRP.TSK.SCE","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*U-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Security","HIERARCHY":"2.X.1.22","ALPHAHIERARCHY":"TACGRP.TSK.SEC","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*US----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"4","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Screen","HIERARCHY":"2.X.1.22.1","ALPHAHIERARCHY":"TACGRP.TSK.SEC.SCN","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*UG----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"4","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Guard","HIERARCHY":"2.X.1.22.2","ALPHAHIERARCHY":"TACGRP.TSK.SEC.GUD","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*UC----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"4","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Cover","HIERARCHY":"2.X.1.22.3","ALPHAHIERARCHY":"TACGRP.TSK.SEC.COV","PATH":"Tactical Graphics/Tasks/Security"},{"SYMBOLID":"G*T*Z-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Seize","HIERARCHY":"2.X.1.23","ALPHAHIERARCHY":"TACGRP.TSK.SZE","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*W-----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Withdraw","HIERARCHY":"2.X.1.24","ALPHAHIERARCHY":"TACGRP.TSK.WDR","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*WP----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Withdraw Under Pressure","HIERARCHY":"2.X.1.24.1","ALPHAHIERARCHY":"TACGRP.TSK.WDR.WDRUP","PATH":"Tactical Graphics/Tasks/Withdraw"},{"SYMBOLID":"G*T*V-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Cordon and Search","HIERARCHY":"2.X.1.25","ALPHAHIERARCHY":"TACGRP.TSK.CRDSRC","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*2-----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Cordon and Knock","HIERARCHY":"2.X.1.26","ALPHAHIERARCHY":"TACGRP.TSK.CRDKNK","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*T*G-----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Suppress","HIERARCHY":"2.X.1.27","ALPHAHIERARCHY":"TACGRP.TSK.SUPPR","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*G*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control and General Maneuver","HIERARCHY":"2.X.2","ALPHAHIERARCHY":"TACGRP.C2GM","PATH":"Tactical Graphics"},{"SYMBOLID":"G*G*G-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"General","HIERARCHY":"2.X.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*GP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GPU---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Under Sea Warfare","HIERARCHY":"2.X.2.1.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPUU--****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Underwater","HIERARCHY":"2.X.2.1.1.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.UH2","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUUD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Datum","HIERARCHY":"2.X.2.1.1.1.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.UH2.DTM","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUB-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Brief Contact","HIERARCHY":"2.X.2.1.1.1.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.UH2.BCON","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUL-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Lost Contact","HIERARCHY":"2.X.2.1.1.1.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.UH2.LCON","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUUS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underwater Sinker","HIERARCHY":"2.X.2.1.1.1.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.UH2.SNK","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Underwater"},{"SYMBOLID":"G*G*GPUY--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy","HIERARCHY":"2.X.2.1.1.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUYP-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Pattern Center","HIERARCHY":"2.X.2.1.1.1.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.PTNCTR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Directional Frequency Analyzing and Recording (DIFAR)","HIERARCHY":"2.X.2.1.1.1.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.DIFAR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYL-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Low Frequency Analyzing and Recording (LOFAR)","HIERARCHY":"2.X.2.1.1.1.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.LOFAR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYC-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Command Active Sonobuoy System (CASS)","HIERARCHY":"2.X.2.1.1.1.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.CASS","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Directional Command Active Sonobuoy System (DICASS)","HIERARCHY":"2.X.2.1.1.1.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.DICASS","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYB-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Bathythermograph Transmitting (BT)","HIERARCHY":"2.X.2.1.1.1.2.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.BT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy ANM","HIERARCHY":"2.X.2.1.1.1.2.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.ANM","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYV-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Vertical Line Array DIFAR (VLAD)","HIERARCHY":"2.X.2.1.1.1.2.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.VLAD","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYT-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy ATAC","HIERARCHY":"2.X.2.1.1.1.2.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.ATAC","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYR-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Range Only (RO)","HIERARCHY":"2.X.2.1.1.1.2.10","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.RO","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYK-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Kingpin","HIERARCHY":"2.X.2.1.1.1.2.11","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.KGP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUYX-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sonobuoy Expired","HIERARCHY":"2.X.2.1.1.1.2.12","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SNBY.EXP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Sonobuoy"},{"SYMBOLID":"G*G*GPUS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search","HIERARCHY":"2.X.2.1.1.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SRH","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare"},{"SYMBOLID":"G*G*GPUSA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search Area","HIERARCHY":"2.X.2.1.1.1.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SRH.ARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPUSD-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dip Position","HIERARCHY":"2.X.2.1.1.1.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SRH.DIPPSN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPUSC-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Search Center","HIERARCHY":"2.X.2.1.1.1.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.USW.SRH.CTR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Under Sea Warfare/Search"},{"SYMBOLID":"G*G*GPR---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Reference Point","HIERARCHY":"2.X.2.1.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPRS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Special Point","HIERARCHY":"2.X.2.1.1.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.SPLPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Nav Reference Point","HIERARCHY":"2.X.2.1.1.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.NAVREF","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"DLRP","HIERARCHY":"2.X.2.1.1.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.DLRP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRI--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Point of Interest","HIERARCHY":"2.X.2.1.1.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.PNTINR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Point of Intended Movement (PIM)","HIERARCHY":"2.X.2.1.1.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.PIM","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Marshall Point","HIERARCHY":"2.X.2.1.1.2.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.MRSH","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Waypoint","HIERARCHY":"2.X.2.1.1.2.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.WAP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPRC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Corridor Tab","HIERARCHY":"2.X.2.1.1.2.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.REFPNT.CRDRTB","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Reference Point"},{"SYMBOLID":"G*G*GPW---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Weapon","HIERARCHY":"2.X.2.1.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPWA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Aim Point","HIERARCHY":"2.X.2.1.1.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.AIMPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Drop Point","HIERARCHY":"2.X.2.1.1.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.DRPPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Entry Point","HIERARCHY":"2.X.2.1.1.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.ENTPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWG--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ground Zero","HIERARCHY":"2.X.2.1.1.3.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.GRDZRO","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"MSL Detect Point","HIERARCHY":"2.X.2.1.1.3.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.MSLPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWI--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Impact Point","HIERARCHY":"2.X.2.1.1.3.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.IMTPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPWP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Predicted Impact Point","HIERARCHY":"2.X.2.1.1.3.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.WPN.PIPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Weapon"},{"SYMBOLID":"G*G*GPF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Formation","HIERARCHY":"2.X.2.1.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.FRMN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.","DESCRIPTION":"Harbor General","HIERARCHY":"2.X.2.1.1.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.HBR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPHQ--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point Q","HIERARCHY":"2.X.2.1.1.5.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.HBR.PNTQ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point A","HIERARCHY":"2.X.2.1.1.5.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.HBR.PNTA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHY--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point Y","HIERARCHY":"2.X.2.1.1.5.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.HBR.PNTY","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPHX--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Harbor Point X","HIERARCHY":"2.X.2.1.1.5.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.HBR.PNTX","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Harbor General"},{"SYMBOLID":"G*G*GPO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route","HIERARCHY":"2.X.2.1.1.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPOZ--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Rendezvous","HIERARCHY":"2.X.2.1.1.6.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE.RDV","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Diversions","HIERARCHY":"2.X.2.1.1.6.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE.DVSN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Waypoint","HIERARCHY":"2.X.2.1.1.6.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE.WAP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route PIM","HIERARCHY":"2.X.2.1.1.6.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE.PIM","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPOR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Route Point R","HIERARCHY":"2.X.2.1.1.6.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.RTE.PNTR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Route"},{"SYMBOLID":"G*G*GPA---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control","HIERARCHY":"2.X.2.1.1.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPAP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Combat Air Patrol (CAP)","HIERARCHY":"2.X.2.1.1.7.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.CAP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Airborne Early Warning (AEW)","HIERARCHY":"2.X.2.1.1.7.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ABNEW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAT--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control TACAN","HIERARCHY":"2.X.2.1.1.7.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.TCN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAK--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Tanking","HIERARCHY":"2.X.2.1.1.7.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.TAK","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Antisubmarine Warfare, Fixed Wing","HIERARCHY":"2.X.2.1.1.7.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ASBWF","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAH--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Antisubmarine Warfare, Rotary Wing","HIERARCHY":"2.X.2.1.1.7.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ASBWR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAO--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Tomcat","HIERARCHY":"2.X.2.1.1.7.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.TMC","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Rescue","HIERARCHY":"2.X.2.1.1.7.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.RSC","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAL--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Replenish","HIERARCHY":"2.X.2.1.1.7.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.RPH","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Strike IP","HIERARCHY":"2.X.2.1.1.7.11","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.SKEIP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAB--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control SUCAP - Fixed Wing","HIERARCHY":"2.X.2.1.1.7.13","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.SUWF","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control SUCAP - Rotary Wing","HIERARCHY":"2.X.2.1.1.7.14","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.SUWR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control MIW - Fixed Wing","HIERARCHY":"2.X.2.1.1.7.15","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.MIWF","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control MIW - Rotary Wing","HIERARCHY":"2.X.2.1.1.7.16","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.MIWR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAF--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Unmanned Aerial System (UAS/UA)","HIERARCHY":"2.X.2.1.1.7.17","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.UA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAG--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control VTUA","HIERARCHY":"2.X.2.1.1.7.18","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.VTUA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAI--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Orbit","HIERARCHY":"2.X.2.1.1.7.19","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ORB","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAJ--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Orbit - Figure Eight","HIERARCHY":"2.X.2.1.1.7.20","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ORBF8","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Orbit - Race Track","HIERARCHY":"2.X.2.1.1.7.21","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ORBRT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPAN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Air Control Orbit - Random, Closed","HIERARCHY":"2.X.2.1.1.7.22","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTL.ORBRD","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Air Control"},{"SYMBOLID":"G*G*GPP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.H1.T.W.W1.N.","DESCRIPTION":"Action Point","HIERARCHY":"2.X.2.1.1.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPPK--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Check Point","HIERARCHY":"2.X.2.1.1.8.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.CHKPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Contact Point","HIERARCHY":"2.X.2.1.1.8.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.CONPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPO--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"N.","DESCRIPTION":"Coordination Point","HIERARCHY":"2.X.2.1.1.8.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.CRDPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPD--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Decision Point","HIERARCHY":"2.X.2.1.1.8.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.DCNPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPL--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Linkup Point","HIERARCHY":"2.X.2.1.1.8.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.LNKUPT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Passage Point","HIERARCHY":"2.X.2.1.1.8.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.PSSPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Rally Point","HIERARCHY":"2.X.2.1.1.8.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.RAYPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Release Point (RP)","HIERARCHY":"2.X.2.1.1.8.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.RELPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Start Point (SP)","HIERARCHY":"2.X.2.1.1.8.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.STRPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPW--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.N.","DESCRIPTION":"Waypoint","HIERARCHY":"2.X.2.1.1.8.10","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.WAP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Point"},{"SYMBOLID":"G*G*GPPA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Amnesty Point","HIERARCHY":"2.X.2.1.1.8.11","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.AMNPNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Action Points"},{"SYMBOLID":"G*G*GPPN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.H.W.W1.N.","DESCRIPTION":"Entry Control Point","HIERARCHY":"2.X.2.1.1.8.12","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.ACTPNT.ECPNT","PATH":"Tactical Graphics/Tasks"},{"SYMBOLID":"G*G*GPC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Surface Control Station","HIERARCHY":"2.X.2.1.1.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPCU--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Unmanned Surface Vehicle (USV) Control Station","HIERARCHY":"2.X.2.1.1.9.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.USV","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCUR-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Remote Multimission Vehicle (RMV) USV Control Station","HIERARCHY":"2.X.2.1.1.9.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.USV.RMV","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station/Unmanned Surface Vehicle (USV) Control Station"},{"SYMBOLID":"G*G*GPCUA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"USV - Antisubmarine Warfare Control Station","HIERARCHY":"2.X.2.1.1.9.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.USV.ASW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station/Unmanned Surface Vehicle (USV) Control Station"},{"SYMBOLID":"G*G*GPCUS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"USV - Surface Warfare Control Station","HIERARCHY":"2.X.2.1.1.9.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.USV.SUW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station/Unmanned Surface Vehicle (USV) Control Station"},{"SYMBOLID":"G*G*GPCUM-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"USV - Mine Warfare Control Station","HIERARCHY":"2.X.2.1.1.9.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.USV.MIW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station/Unmanned Surface Vehicle (USV) Control Station"},{"SYMBOLID":"G*G*GPCA--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"ASW Control Station","HIERARCHY":"2.X.2.1.1.9.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.ASW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"SUW Control Station","HIERARCHY":"2.X.2.1.1.9.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.SUW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"MIW Control Station","HIERARCHY":"2.X.2.1.1.9.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.MIW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Picket Control Station","HIERARCHY":"2.X.2.1.1.9.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.PKT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rendezvous Control Point","HIERARCHY":"2.X.2.1.1.9.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.RDV","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rescue Control Point","HIERARCHY":"2.X.2.1.1.9.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.RSC","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCE--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Replenishment Control Point","HIERARCHY":"2.X.2.1.1.9.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.REP","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPCN--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Noncombatant Control Station","HIERARCHY":"2.X.2.1.1.9.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.SCTL.NCBTT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Sea Surface Control Station"},{"SYMBOLID":"G*G*GPB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Subsurface Control Station","HIERARCHY":"2.X.2.1.1.10","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points"},{"SYMBOLID":"G*G*GPBU--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Unmanned Underwater Vehicle (UUV) Control Station","HIERARCHY":"2.X.2.1.1.10.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.UUV","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station"},{"SYMBOLID":"G*G*GPBUA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"UUV - Antisubmarine Warfare Control Station","HIERARCHY":"2.X.2.1.1.10.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.UUV.ASW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station/Unmanned Underwater Vehicle (UUV) Control Station"},{"SYMBOLID":"G*G*GPBUS-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"UUV - Surface Warfare Control Station","HIERARCHY":"2.X.2.1.1.10.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.UUV.SUW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station/Unmanned Underwater Vehicle (UUV) Control Station"},{"SYMBOLID":"G*G*GPBUM-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"UUV - Mine Warfare Control Station","HIERARCHY":"2.X.2.1.1.10.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.UUV.MIW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station/Unmanned Underwater Vehicle (UUV) Control Station"},{"SYMBOLID":"G*G*GPBS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Submarine Control Station","HIERARCHY":"2.X.2.1.1.10.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.SBSTN","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station"},{"SYMBOLID":"G*G*GPBSA-****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"ASW Submarine Control Station","HIERARCHY":"2.X.2.1.1.10.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.PNT.UCTL.SBSTN.ASW","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Points/Subsurface Control Station/Submarine Control Station"},{"SYMBOLID":"G*G*GL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GLB---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"B.N.T.T1.","DESCRIPTION":"Boundary","HIERARCHY":"2.X.2.1.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE.BNDS","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Forward Line of Own Troops","HIERARCHY":"2.X.2.1.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE.FLOT","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"N.","DESCRIPTION":"Line of Contact (LC)","HIERARCHY":"2.X.2.1.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE.LOC","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLP---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Phase Line","HIERARCHY":"2.X.2.1.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE.PHELNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GLL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Light Line","HIERARCHY":"2.X.2.1.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.LNE.LITLNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Lines"},{"SYMBOLID":"G*G*GA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS","PATH":"Tactical Graphics/Command and Control and General Maneuver/General"},{"SYMBOLID":"G*G*GAG---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"General Area","HIERARCHY":"2.X.2.1.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.GENARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Assembly Area","HIERARCHY":"2.X.2.1.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.ABYARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Engagement Area (General)","HIERARCHY":"2.X.2.1.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.EMTARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Fortified Area","HIERARCHY":"2.X.2.1.3.4","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.FTFDAR","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Drop Zone","HIERARCHY":"2.X.2.1.3.5","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.DRPZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAX---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Extraction Zone","HIERARCHY":"2.X.2.1.3.6","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.EZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAL---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Landing Zone (LZ)","HIERARCHY":"2.X.2.1.3.7","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.LZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAP---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.T.","DESCRIPTION":"Pickup Zone (PZ)","HIERARCHY":"2.X.2.1.3.8","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.PZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAS---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Search Area/Reconnaissance Area","HIERARCHY":"2.X.2.1.3.9","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.SRHARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAY---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Limited Access Area","HIERARCHY":"2.X.2.1.3.10","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.LAARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*GAZ---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Airfield Zone","HIERARCHY":"2.X.2.1.3.11","ALPHAHIERARCHY":"TACGRP.C2GM.GNL.ARS.AIRFZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/General/Areas"},{"SYMBOLID":"G*G*A-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Aviation","HIERARCHY":"2.X.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*AP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.PNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*APP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Air Control Point (ACP)","HIERARCHY":"2.X.2.2.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.PNT.ACP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Communications Checkpoint (CCP)","HIERARCHY":"2.X.2.2.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.PNT.COMMCP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APU---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pull-Up Point (PUP)","HIERARCHY":"2.X.2.2.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.PNT.PUP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*APD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"N.","DESCRIPTION":"Downed Aircrew Pickup Point","HIERARCHY":"2.X.2.2.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.PNT.DAPP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Points"},{"SYMBOLID":"G*G*AL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*ALC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"X.X1.T.W.W1.AM.","DESCRIPTION":"Air Corridor","HIERARCHY":"2.X.2.2.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE.ACDR","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"X.X1.T.W.W1.AM.","DESCRIPTION":"Minimum Risk Route (MRR)","HIERARCHY":"2.X.2.2.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE.MRR","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALS---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"X.X1.T.W.W1.AM.","DESCRIPTION":"Standard-Use Army Aircraft Flight Route (SAAFR)","HIERARCHY":"2.X.2.2.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE.SAAFR","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALU---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"X.X1.T.W.W1.AM.","DESCRIPTION":"Unmanned Aircraft (UA) Route","HIERARCHY":"2.X.2.2.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE.UAR","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*ALL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"X.X1.T.W.W1.AM.","DESCRIPTION":"Low Level Transit Route (LLTR)","HIERARCHY":"2.X.2.2.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.LNE.LLTR","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Lines"},{"SYMBOLID":"G*G*AA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation"},{"SYMBOLID":"G*G*AAR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"Restricted Operations Zone (ROZ)","HIERARCHY":"2.X.2.2.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.ROZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"Short-Range Air Defense Engagement Zone (SHORADEZ)","HIERARCHY":"2.X.2.2.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.SHRDEZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAH---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"High Density Airspace Control Zone (HIDACZ)","HIERARCHY":"2.X.2.2.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.HIDACZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAM---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"Missile Engagement Zone (MEZ)","HIERARCHY":"2.X.2.2.3.4","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.MEZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*AAML--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"Low Altitude MEZ","HIERARCHY":"2.X.2.2.3.4.1","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.MEZ.LAMEZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas/Missile Engagement Zone (MEZ)"},{"SYMBOLID":"G*G*AAMH--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.T.W.W1.","DESCRIPTION":"High Altitude MEZ","HIERARCHY":"2.X.2.2.3.4.2","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.MEZ.HAMEZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas/Missile Engagement Zone (MEZ)"},{"SYMBOLID":"G*G*AAW---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Weapons Free Zone","HIERARCHY":"2.X.2.2.3.5","ALPHAHIERARCHY":"TACGRP.C2GM.AVN.ARS.WFZ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Aviation/Areas"},{"SYMBOLID":"G*G*P-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Deception","HIERARCHY":"2.X.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*PD----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Dummy (Deception/Decoy)","HIERARCHY":"2.X.2.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DMY","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PA----****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Axis of Advance for Feint","HIERARCHY":"2.X.2.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.AAFF","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PF----****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Direction of Attack for Feint","HIERARCHY":"2.X.2.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DAFF","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PM----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Decoy Mined Area","HIERARCHY":"2.X.2.3.4","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DMA","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PY----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Decoy Mined Area, Fenced","HIERARCHY":"2.X.2.3.5","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DMAF","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PN----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dummy Minefield - Static","HIERARCHY":"2.X.2.3.6","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DMYMS","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*PC----****X","GEOMETRY":"area","DRAWCATEGORY":"15","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.N.","DESCRIPTION":"Dummy Minefield - Dynamic","HIERARCHY":"2.X.2.3.7","ALPHAHIERARCHY":"TACGRP.C2GM.DCPN.DMYMD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Deception"},{"SYMBOLID":"G*G*D-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Defense","HIERARCHY":"2.X.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.DEF","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*DP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.4.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DPT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Target Reference","HIERARCHY":"2.X.2.4.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.TGTREF","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points"},{"SYMBOLID":"G*G*DPO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Observation Post (OP)/Outpost","HIERARCHY":"2.X.2.4.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points"},{"SYMBOLID":"G*G*DPOC--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Combat Outpost","HIERARCHY":"2.X.2.4.1.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST.CBTPST","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOR--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Observation Post Occupied Dismounted Recon","HIERARCHY":"2.X.2.4.1.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST.RECON","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOF--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Forward Observer Position Outpost","HIERARCHY":"2.X.2.4.1.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST.FWDOP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPOS--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sensor Outpost/Listening Post (OP/LP)","HIERARCHY":"2.X.2.4.1.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST.SOP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DPON--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"NBC Observation Post Dismounted","HIERARCHY":"2.X.2.4.1.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.PNT.OBSPST.CBRNOP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Points/Observation Post-Outpost"},{"SYMBOLID":"G*G*DL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.4.2","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.LNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Forward Edge of Battle Area","HIERARCHY":"2.X.2.4.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.LNE.FEBA","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Lines"},{"SYMBOLID":"G*G*DLP---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Principal Direction of Fire (PDF)","HIERARCHY":"2.X.2.4.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.LNE.PDF","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Lines"},{"SYMBOLID":"G*G*DA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.4.3","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.ARS","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense"},{"SYMBOLID":"G*G*DAB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.N.T.","DESCRIPTION":"Battle Position","HIERARCHY":"2.X.2.4.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.ARS.BTLPSN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas"},{"SYMBOLID":"G*G*DABP--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.N.T.","DESCRIPTION":"Battle Position Prepared but not Occupied","HIERARCHY":"2.X.2.4.3.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.ARS.BTLPSN.PBNO","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas/Battle Position"},{"SYMBOLID":"G*G*DAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Engagement Area (Defense)","HIERARCHY":"2.X.2.4.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.DEF.ARS.EMTARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/Defense/Areas"},{"SYMBOLID":"G*G*O-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Offense","HIERARCHY":"2.X.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.OFF","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*OP----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.2.5.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.PNT","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OPP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Point of Departure","HIERARCHY":"2.X.2.5.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.PNT.PNTD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Points"},{"SYMBOLID":"G*G*OL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.2.5.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OLA---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Axis of Advance","HIERARCHY":"2.X.2.5.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLAV--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Aviation","HIERARCHY":"2.X.2.5.2.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.AVN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAA--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"A.","DESCRIPTION":"Axis of Advance Airborne","HIERARCHY":"2.X.2.5.2.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.ABN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAR--****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Attack, Rotary Wing","HIERARCHY":"2.X.2.5.2.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.ATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAG--****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Axis of Advance Ground","HIERARCHY":"2.X.2.5.2.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.GRD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance"},{"SYMBOLID":"G*G*OLAGM-****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Ground Main Attack","HIERARCHY":"2.X.2.5.2.1.4.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.GRD.MANATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance/Axis of Advance Ground"},{"SYMBOLID":"G*G*OLAGS-****X","GEOMETRY":"line","DRAWCATEGORY":"5","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Axis of Advance Ground Supporting Attack","HIERARCHY":"2.X.2.5.2.1.4.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.AXSADV.GRD.SUPATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Axis of Advance/Axis of Advance Ground"},{"SYMBOLID":"G*G*OLK---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Direction of Attack","HIERARCHY":"2.X.2.5.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.DIRATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLKA--****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"N.","DESCRIPTION":"Direction of Attack Aviation","HIERARCHY":"2.X.2.5.2.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.DIRATK.AVN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack"},{"SYMBOLID":"G*G*OLKG--****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Direction of Attack Ground","HIERARCHY":"2.X.2.5.2.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.DIRATK.GRD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack"},{"SYMBOLID":"G*G*OLKGM-****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Direction of Attack Ground Main Attack","HIERARCHY":"2.X.2.5.2.2.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.DIRATK.GRD.MANATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack/Direction of Attack Ground"},{"SYMBOLID":"G*G*OLKGS-****X","GEOMETRY":"line","DRAWCATEGORY":"4","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Direction of Attack Ground Supporting Attack","HIERARCHY":"2.X.2.5.2.2.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.DIRATK.GRD.SUPATK","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines/Direction of Attack/Direction of Attack Ground"},{"SYMBOLID":"G*G*OLF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Final Coordination Line","HIERARCHY":"2.X.2.5.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.FCL","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLI---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Infiltration Lane","HIERARCHY":"2.X.2.5.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.INFNLE","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Limit Of Advance (LOA)","HIERARCHY":"2.X.2.5.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.LMTADV","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLT---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line of Departure (LD)","HIERARCHY":"2.X.2.5.2.6","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.LD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Line of Departure/Line of Contact (LD/LC)","HIERARCHY":"2.X.2.5.2.7","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.LDLC","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OLP---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Probable Line of Deployment (PLD)","HIERARCHY":"2.X.2.5.2.8","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.LNE.PLD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Lines"},{"SYMBOLID":"G*G*OA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.2.5.3","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense"},{"SYMBOLID":"G*G*OAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Assault Position","HIERARCHY":"2.X.2.5.3.1","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.ASTPSN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAK---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Attack Position","HIERARCHY":"2.X.2.5.3.2","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.ATKPSN","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAF---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Attack by Fire Position","HIERARCHY":"2.X.2.5.3.3","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.AFP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAS---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Support by Fire Position","HIERARCHY":"2.X.2.5.3.4","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.SFP","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAO---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Objective","HIERARCHY":"2.X.2.5.3.5","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.OBJ","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*OAP---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Penetration Box","HIERARCHY":"2.X.2.5.3.6","ALPHAHIERARCHY":"TACGRP.C2GM.OFF.ARS.PBX","PATH":"Tactical Graphics/Command and Control and General Maneuver/Offense/Areas"},{"SYMBOLID":"G*G*S-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Special","HIERARCHY":"2.X.2.6","ALPHAHIERARCHY":"TACGRP.C2GM.SPL","PATH":"Tactical Graphics/Command and Control and General Maneuver"},{"SYMBOLID":"G*G*SL----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Line","HIERARCHY":"2.X.2.6.1","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.LNE","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special"},{"SYMBOLID":"G*G*SLA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ambush","HIERARCHY":"2.X.2.6.1.1","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.LNE.AMB","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLH---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Holding Line","HIERARCHY":"2.X.2.6.1.2","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.LNE.HGL","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Release Line","HIERARCHY":"2.X.2.6.1.3","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.LNE.REL","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SLB---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Bridgehead","HIERARCHY":"2.X.2.6.1.4","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.LNE.BRGH","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Line"},{"SYMBOLID":"G*G*SA----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Area","HIERARCHY":"2.X.2.6.2","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special"},{"SYMBOLID":"G*G*SAO---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area of Operations (AO)","HIERARCHY":"2.X.2.6.2.1","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA.AOO","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Airhead","HIERARCHY":"2.X.2.6.2.2","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA.AHD","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAE---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Encirclement","HIERARCHY":"2.X.2.6.2.3","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA.ENCMT","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAN---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Named Area of Interest (NAI)","HIERARCHY":"2.X.2.6.2.4","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA.NAI","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*G*SAT---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Targeted Area of Interest (TAI)","HIERARCHY":"2.X.2.6.2.5","ALPHAHIERARCHY":"TACGRP.C2GM.SPL.ARA.TAI","PATH":"Tactical Graphics/Command and Control and General Maneuver/Special/Area"},{"SYMBOLID":"G*M*------****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mobility/Survivability","HIERARCHY":"2.X.3","ALPHAHIERARCHY":"TACGRP.MOBSU","PATH":"Tactical Graphics"},{"SYMBOLID":"G*M*O-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacles","HIERARCHY":"2.X.3.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*OG----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"General (Obstacles)","HIERARCHY":"2.X.3.1.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OGB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.T1.","DESCRIPTION":"Obstacle Belt","HIERARCHY":"2.X.3.1.1.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL.BLT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Obstacle Line","HIERARCHY":"2.X.3.1.1.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL.LNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGZ---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Obstacle Zone","HIERARCHY":"2.X.3.1.1.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL.Z","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGF---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Obstacle Free Area","HIERARCHY":"2.X.3.1.1.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL.OFA","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OGR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Obstacle Restricted Area","HIERARCHY":"2.X.3.1.1.5","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.GNL.ORA","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/General"},{"SYMBOLID":"G*M*OS----****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Abatis","HIERARCHY":"2.X.3.1.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ABS","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OA----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Obstacles","HIERARCHY":"2.X.3.1.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OAD---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Ditch","HIERARCHY":"2.X.3.1.3.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.ATD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OADU--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Under Construction","HIERARCHY":"2.X.3.1.3.1.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.ATD.ATDUC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Ditch"},{"SYMBOLID":"G*M*OADC--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Complete","HIERARCHY":"2.X.3.1.3.1.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.ATD.ATDC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Ditch"},{"SYMBOLID":"G*M*OAR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Ditch Reinforced with Antitank Mines","HIERARCHY":"2.X.3.1.3.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.ATDATM","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OAO---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles","HIERARCHY":"2.X.3.1.3.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.TDTSM","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OAOF--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Fixed and Prefabricated","HIERARCHY":"2.X.3.1.3.3.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.TDTSM.FIXPFD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAOM--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Moveable","HIERARCHY":"2.X.3.1.3.3.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.TDTSM.MVB","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAOP--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Obstacles Moveable and Prefabricated","HIERARCHY":"2.X.3.1.3.3.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.TDTSM.MVBPFD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles/Antitank Obstacles, Tetrahedrons, Dragons Teeth, and Other Similar Obstacles"},{"SYMBOLID":"G*M*OAW---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Antitank Wall","HIERARCHY":"2.X.3.1.3.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.ATO.ATW","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Antitank Obstacles"},{"SYMBOLID":"G*M*OB----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Booby Trap","HIERARCHY":"2.X.3.1.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.BBY","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OM----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mines","HIERARCHY":"2.X.3.1.5","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OMU---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Unspecified Mine","HIERARCHY":"2.X.3.1.5.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.USPMNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine","HIERARCHY":"2.X.3.1.5.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.ATMNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine With Antihandling Device","HIERARCHY":"2.X.3.1.5.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.ATMAHD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OME---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antitank Mine, Directional","HIERARCHY":"2.X.3.1.5.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.ATMDIR","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Antipersonnel Mine","HIERARCHY":"2.X.3.1.5.5","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.APMNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMW---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wide Area Mines","HIERARCHY":"2.X.3.1.5.6","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.WAMNE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OMC---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Mine Cluster","HIERARCHY":"2.X.3.1.5.7","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNE.MCLST","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Mines"},{"SYMBOLID":"G*M*OF----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Minefields","HIERARCHY":"2.X.3.1.6","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNEFLD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OFS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.W.A.","DESCRIPTION":"Minefield (Static)","HIERARCHY":"2.X.3.1.6.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNEFLD.STC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.N.W.","DESCRIPTION":"Minefield (Dynamic)","HIERARCHY":"2.X.3.1.6.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNEFLD.DYN","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFG---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","MODIFIERS":"W.W1.","DESCRIPTION":"Minefields Gap","HIERARCHY":"2.X.3.1.6.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNEFLD.GAP","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OFA---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"N.","DESCRIPTION":"Mined Area","HIERARCHY":"2.X.3.1.6.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.MNEFLD.MNDARA","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Minefields"},{"SYMBOLID":"G*M*OE----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Effect","HIERARCHY":"2.X.3.1.7","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.OBSEFT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OEB---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Block Obstacle Effect","HIERARCHY":"2.X.3.1.7.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.OBSEFT.BLK","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OEF---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Fix (Obstacle Effect)","HIERARCHY":"2.X.3.1.7.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.OBSEFT.FIX","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OET---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Turn","HIERARCHY":"2.X.3.1.7.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.OBSEFT.TUR","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OED---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Disrupt Obstacle Effect","HIERARCHY":"2.X.3.1.7.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.OBSEFT.DRT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Obstacle Effect"},{"SYMBOLID":"G*M*OU----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Unexploded Ordnance Area (UXO)","HIERARCHY":"2.X.3.1.8","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.UXO","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OR----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Roadblocks, Craters, and Blown Bridges","HIERARCHY":"2.X.3.1.9","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.RCBB","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*ORP---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Planned","HIERARCHY":"2.X.3.1.9.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.RCBB.PLND","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORS---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Explosives State of Readiness 1 (Safe)","HIERARCHY":"2.X.3.1.9.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.RCBB.SAFE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Explosives State of Readiness 2 (Armed - but Passable)","HIERARCHY":"2.X.3.1.9.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.RCBB.ABP","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*ORC---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"RCBB Roadblock Complete (Executed)","HIERARCHY":"2.X.3.1.9.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.RCBB.EXCD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Roadblocks, Craters, and Blown Bridges"},{"SYMBOLID":"G*M*OT----****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Trip Wire","HIERARCHY":"2.X.3.1.10","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.TRIPWR","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OW----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Wire Obstacle","HIERARCHY":"2.X.3.1.11","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OWU---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Unspecified","HIERARCHY":"2.X.3.1.11.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.USP","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWS---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Single Fence","HIERARCHY":"2.X.3.1.11.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.SNGFNC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWD---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Fence","HIERARCHY":"2.X.3.1.11.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.DBLFNC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWA---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Apron Fence","HIERARCHY":"2.X.3.1.11.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.DAFNC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWL---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Low Wire Fence","HIERARCHY":"2.X.3.1.11.5","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.LWFNC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWH---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle High Wire Fence","HIERARCHY":"2.X.3.1.11.6","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.HWFNC","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWC---****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Concertina","HIERARCHY":"2.X.3.1.11.7","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.CCTA","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle"},{"SYMBOLID":"G*M*OWCS--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Single Concertina","HIERARCHY":"2.X.3.1.11.7.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.CCTA.SNG","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*OWCD--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Double Strand Concertina","HIERARCHY":"2.X.3.1.11.7.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.CCTA.DBLSTD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*OWCT--****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Wire Obstacle Triple Strand Concertina","HIERARCHY":"2.X.3.1.11.7.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.WREOBS.CCTA.TRISTD","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Wire Obstacle/Concertina"},{"SYMBOLID":"G*M*OH----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Aviation","HIERARCHY":"2.X.3.1.12","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.AVN","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles"},{"SYMBOLID":"G*M*OHT---****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tower","HIERARCHY":"2.X.3.1.12.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.AVN.TWR","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Aviation"},{"SYMBOLID":"G*M*OHTL--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Aviation Tower Low","HIERARCHY":"2.X.3.1.12.1.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.AVN.TWR.LOW","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Aviation/Tower"},{"SYMBOLID":"G*M*OHTH--****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Aviation Tower High","HIERARCHY":"2.X.3.1.12.1.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.AVN.TWR.HIGH","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Aviation/Tower"},{"SYMBOLID":"G*M*OHO---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Overhead Wire","HIERARCHY":"2.X.3.1.12.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBST.AVN.TWR.HIGH","PATH":"Tactical Graphics/Mobility-Survivability/Obstacles/Aviation"},{"SYMBOLID":"G*M*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Bypass","HIERARCHY":"2.X.3.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*BD----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Obstacle Bypass Difficulty","HIERARCHY":"2.X.3.2.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.DFTY","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass"},{"SYMBOLID":"G*M*BDE---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Easy","HIERARCHY":"2.X.3.2.1.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.DFTY.ESY","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BDD---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Difficult","HIERARCHY":"2.X.3.2.1.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.DFTY.DFT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BDI---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Bypass Impossible","HIERARCHY":"2.X.3.2.1.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.DFTY.IMP","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Obstacle Bypass Difficulty"},{"SYMBOLID":"G*M*BC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Crossing Site/Water Crossing","HIERARCHY":"2.X.3.2.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass"},{"SYMBOLID":"G*M*BCA---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Assault Crossing Area","HIERARCHY":"2.X.3.2.2.1","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.ASTCA","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCB---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Bridge or Gap","HIERARCHY":"2.X.3.2.2.2","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.BRG","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCF---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Ferry","HIERARCHY":"2.X.3.2.2.3","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.FRY","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCE---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ford Easy","HIERARCHY":"2.X.3.2.2.4","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.FRDESY","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCD---****X","GEOMETRY":"line","DRAWCATEGORY":"15","MAXPOINTS":"3","MINPOINTS":"3","DESCRIPTION":"Ford Difficult","HIERARCHY":"2.X.3.2.2.5","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.FRDDFT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCL---****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Lane","HIERARCHY":"2.X.3.2.2.6","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.LANE","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCR---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Raft Site","HIERARCHY":"2.X.3.2.2.7","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.RFT","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*BCP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Engineer Regulating Point","HIERARCHY":"2.X.3.2.2.8","ALPHAHIERARCHY":"TACGRP.MOBSU.OBSTBP.CSGSTE.ERP","PATH":"Tactical Graphics/Mobility-Survivability/Obstacle Bypass/Crossing Site-Water Crossing"},{"SYMBOLID":"G*M*S-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Survivability","HIERARCHY":"2.X.3.3","ALPHAHIERARCHY":"TACGRP.MOBSU.SU","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*SE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Earthwork, Small Trench or Fortification","HIERARCHY":"2.X.3.3.1","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.ESTOF","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SF----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fort","HIERARCHY":"2.X.3.3.2","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.FRT","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SL----****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Fortified Line","HIERARCHY":"2.X.3.3.3","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.FTFDLN","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SW----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Foxhole, Emplacement or Weapon Site","HIERARCHY":"2.X.3.3.4","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.FEWS","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SP----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"B.T.","DESCRIPTION":"Strong Point","HIERARCHY":"2.X.3.3.5","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.STRGPT","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SS----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Shelter","HIERARCHY":"2.X.3.3.6","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.SUFSHL","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*SU----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Underground Shelter","HIERARCHY":"2.X.3.3.7","ALPHAHIERARCHY":"TACGRP.MOBSU.SU.UGDSHL","PATH":"Tactical Graphics/Mobility-Survivability/Survivability"},{"SYMBOLID":"G*M*N-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Nuclear, Biological, and Chemical","HIERARCHY":"2.X.3.4","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN","PATH":"Tactical Graphics/Mobility-Survivability"},{"SYMBOLID":"G*M*NM----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"4","MINPOINTS":"4","DESCRIPTION":"Minimum Safe Distance Zones","HIERARCHY":"2.X.3.4.1","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.MSDZ","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NZ----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"C.H.N.Q.T.V.W.Y.","DESCRIPTION":"Nuclear Detonations Ground Zero","HIERARCHY":"2.X.3.4.2","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.NDGZ","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NF----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fallout Producing","HIERARCHY":"2.X.3.4.3","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.FAOTP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NR----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Radioactive Area","HIERARCHY":"2.X.3.4.4","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.RADA","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NB----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Biologically Contaminated Area","HIERARCHY":"2.X.3.4.5","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.BIOCA","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NC----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Chemically Contaminated Area","HIERARCHY":"2.X.3.4.6","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.CMLCA","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NE----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Release Events","HIERARCHY":"2.X.3.4.7","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.REEVNT","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NEB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.Q.T.W.Y.","DESCRIPTION":"Biological Event","HIERARCHY":"2.X.3.4.7.1","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.REEVNT.BIO","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Release Events"},{"SYMBOLID":"G*M*NEC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.N.Q.T.W.Y.","DESCRIPTION":"Chemical Event","HIERARCHY":"2.X.3.4.7.2","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.REEVNT.CML","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Release Events"},{"SYMBOLID":"G*M*ND----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Decontamination (DECON) Points","HIERARCHY":"2.X.3.4.8","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*M*NDP---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Unspecified","HIERARCHY":"2.X.3.4.8.1","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.USP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDA---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Alternate Decon Site/Point Unspecified","HIERARCHY":"2.X.3.4.8.2","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.ALTUSP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Troops","HIERARCHY":"2.X.3.4.8.3","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.TRP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDE---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Equipment","HIERARCHY":"2.X.3.4.8.4","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.EQT","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Equipment and Troops","HIERARCHY":"2.X.3.4.8.5","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.EQTTRP","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDO---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Operational Decontamination","HIERARCHY":"2.X.3.4.8.6","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.OPDECN","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NDD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Decon Site/Point Thorough Decontamination","HIERARCHY":"2.X.3.4.8.7","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DECONP.TRGH","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical/Decontamination (DECON) Points"},{"SYMBOLID":"G*M*NL----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Dose Rate Contour Lines","HIERARCHY":"2.X.3.4.9","ALPHAHIERARCHY":"TACGRP.MOBSU.CBRN.DRCL","PATH":"Tactical Graphics/Mobility-Survivability/Nuclear, Biological, and Chemical"},{"SYMBOLID":"G*F*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fire Support","HIERARCHY":"2.X.4","ALPHAHIERARCHY":"TACGRP.FSUPP","PATH":"Tactical Graphics"},{"SYMBOLID":"G*F*P-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.4.1","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*PT----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target","HIERARCHY":"2.X.4.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.TGT","PATH":"Tactical Graphics/Fire Support/Points"},{"SYMBOLID":"G*F*PTS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.H1.T.","DESCRIPTION":"Point/Single Target","HIERARCHY":"2.X.4.1.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.TGT.PTGT","PATH":"Tactical Graphics/Fire Support/Points/Target"},{"SYMBOLID":"G*F*PTN---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Nuclear Target","HIERARCHY":"2.X.4.1.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.TGT.NUCTGT","PATH":"Tactical Graphics/Fire Support/Points/Target"},{"SYMBOLID":"G*F*PC----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control","HIERARCHY":"2.X.4.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT","PATH":"Tactical Graphics/Fire Support/Points"},{"SYMBOLID":"G*F*PCF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.","DESCRIPTION":"Fire Support Station","HIERARCHY":"2.X.4.1.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.FSS","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Survey Control Point","HIERARCHY":"2.X.4.1.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.SCP","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Firing Point","HIERARCHY":"2.X.4.1.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.FP","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCR---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Reload Point","HIERARCHY":"2.X.4.1.2.4","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.RP","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Hide Point","HIERARCHY":"2.X.4.1.2.5","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.HP","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*PCL---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Launch Point","HIERARCHY":"2.X.4.1.2.6","ALPHAHIERARCHY":"TACGRP.FSUPP.PNT.C2PNT.LP","PATH":"Tactical Graphics/Fire Support/Points/Command and Control"},{"SYMBOLID":"G*F*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.4.2","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*LT----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Linear Target","HIERARCHY":"2.X.4.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.LNRTGT","PATH":"Tactical Graphics/Fire Support/Lines"},{"SYMBOLID":"G*F*LTS---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Linear Smoke Target","HIERARCHY":"2.X.4.2.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.LNRTGT.LSTGT","PATH":"Tactical Graphics/Fire Support/Lines/Linear Target"},{"SYMBOLID":"G*F*LTF---****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.T1.","DESCRIPTION":"Final Protective Fire","HIERARCHY":"2.X.4.2.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.LNRTGT.FPF","PATH":"Tactical Graphics/Fire Support/Lines/Linear Target"},{"SYMBOLID":"G*F*LC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control Lines","HIERARCHY":"2.X.4.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE","PATH":"Tactical Graphics/Fire Support/Lines"},{"SYMBOLID":"G*F*LCF---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Fire Support Coordination Line","HIERARCHY":"2.X.4.2.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE.FSCL","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCC---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Coordinated Fire Line (CFL)","HIERARCHY":"2.X.4.2.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE.CFL","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCN---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"No-Fire Line (NFL)","HIERARCHY":"2.X.4.2.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE.NFL","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCR---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.W.W1.","DESCRIPTION":"Restrictive Fire Line (RFL)","HIERARCHY":"2.X.4.2.2.4","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE.RFL","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*LCM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"W.W1.","DESCRIPTION":"Munition Flight Path (MFP)","HIERARCHY":"2.X.4.2.2.5","ALPHAHIERARCHY":"TACGRP.FSUPP.LNE.C2LNE.MFP","PATH":"Tactical Graphics/Fire Support/Lines/Command and Control Lines"},{"SYMBOLID":"G*F*A-----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Areas","HIERARCHY":"2.X.4.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS","PATH":"Tactical Graphics/Fire Support"},{"SYMBOLID":"G*F*AT----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Area Target","HIERARCHY":"2.X.4.3.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*ATR---****X","GEOMETRY":"area","DRAWCATEGORY":"17","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.AM.AN.","DESCRIPTION":"Rectangular Target","HIERARCHY":"2.X.4.3.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT.RTGTGT","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATC---****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.AM.","DESCRIPTION":"Circular Target","HIERARCHY":"2.X.4.3.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT.CIRTGT","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATG---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Group of Targets","HIERARCHY":"2.X.4.3.1.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT.SGTGT","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATS---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.","DESCRIPTION":"Smoke Area","HIERARCHY":"2.X.4.3.1.4","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT.SMK","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*ATB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bomb Area","HIERARCHY":"2.X.4.3.1.5","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.ARATGT.BMARA","PATH":"Tactical Graphics/Fire Support/Areas/Area Target"},{"SYMBOLID":"G*F*AC----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Command and Control Areas","HIERARCHY":"2.X.4.3.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*ACS---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"T.W.W1.","DESCRIPTION":"Fire Support Area (FSA)","HIERARCHY":"2.X.4.3.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FSA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACSI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1","DESCRIPTION":"Fire Support Area (FSA) Irregular","HIERARCHY":"2.X.4.3.2.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FSA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACSR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Fire Support Area (FSA) Rectangular","HIERARCHY":"2.X.4.3.2.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FSA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACSC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Fire Support Area (FSA) Circular","HIERARCHY":"2.X.4.3.2.1.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FSA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Fire Support Area (FSA)"},{"SYMBOLID":"G*F*ACA---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Airspace Coordination Area (ACA)","HIERARCHY":"2.X.4.3.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ACA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACAI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"X.X1.H2.T.W.W1.","DESCRIPTION":"Airspace Coordination Area (ACA) Irregular","HIERARCHY":"2.X.4.3.2.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ACA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACAR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.X.X1.H2.W.W1.AM.","DESCRIPTION":"Airspace Coordination Area (ACA) Rectangular","HIERARCHY":"2.X.4.3.2.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ACA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACAC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.X.X1.H2.W.W1.AM.","DESCRIPTION":"Airspace Coordination Area (ACA) Circular","HIERARCHY":"2.X.4.3.2.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ACA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Airspace Coordination Area (ACA)"},{"SYMBOLID":"G*F*ACF---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"T.W.W1.","DESCRIPTION":"Free Fire Area (FFA)","HIERARCHY":"2.X.4.3.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FFA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACFI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Free Fire Area (FFA) Irregular","HIERARCHY":"2.X.4.3.2.3.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FFA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACFR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Free Fire Area (FFA) Rectangular","HIERARCHY":"2.X.4.3.2.3.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FFA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACFC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Free Fire Area (FFA) Circular","HIERARCHY":"2.X.4.3.2.3.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.FFA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Free Fire Area (FFA)"},{"SYMBOLID":"G*F*ACN---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"No-Fire Area (NFA)","HIERARCHY":"2.X.4.3.2.4","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.NFA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACNI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"No-Fire Area (NFA) Irregular","HIERARCHY":"2.X.4.3.2.4.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.NFA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA)"},{"SYMBOLID":"G*F*ACNR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"No-Fire Area (NFA) Rectangular","HIERARCHY":"2.X.4.3.2.4.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.NFA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA)"},{"SYMBOLID":"G*F*ACNC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"No-Fire Area (NFA) Circular","HIERARCHY":"2.X.4.3.2.4.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.NFA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/No-Fire Area (NFA)"},{"SYMBOLID":"G*F*ACR---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Restrictive Fire Area (RFA)","HIERARCHY":"2.X.4.3.2.5","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.RFA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACRI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Restrictive Fire Area (RFA) Irregular","HIERARCHY":"2.X.4.3.2.5.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.RFA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA)"},{"SYMBOLID":"G*F*ACRR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Restrictive Fire Area (RFA) Rectangular","HIERARCHY":"2.X.4.3.2.5.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.RFA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA)"},{"SYMBOLID":"G*F*ACRC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Restrictive Fire Area (RFA) Circular","HIERARCHY":"2.X.4.3.2.5.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.RFA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Restrictive Fire Area (RFA)"},{"SYMBOLID":"G*F*ACP---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Position Area for Artillery (PAA)","HIERARCHY":"2.X.4.3.2.6","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.PAA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACPR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"AM.","DESCRIPTION":"Position Area for Artillery (PAA) Rectangular","HIERARCHY":"2.X.4.3.2.6.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.PAA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Position Area for Artillery (PAA)"},{"SYMBOLID":"G*F*ACPC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"AM.","DESCRIPTION":"Position Area For Artillery (PAA) Circular","HIERARCHY":"2.X.4.3.2.6.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.PAA.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Position Area for Artillery (PAA)"},{"SYMBOLID":"G*F*ACE---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Sensor Zone","HIERARCHY":"2.X.4.3.2.7","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.SNSZ","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACEI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Sensor Zone Irregular","HIERARCHY":"2.X.4.3.2.7.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.SNSZ.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Sensor Zone"},{"SYMBOLID":"G*F*ACER--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Sensor Zone Rectangular","HIERARCHY":"2.X.4.3.2.7.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.SNSZ.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Sensor Zone"},{"SYMBOLID":"G*F*ACEC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Sensor Zone Circular","HIERARCHY":"2.X.4.3.2.7.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.SNSZ.CIRCL","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Sensor Zone"},{"SYMBOLID":"G*F*ACD---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dead Space Area (DA)","HIERARCHY":"2.X.4.3.2.8","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.DA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACDI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Dead Space Area (DA) Irregular","HIERARCHY":"2.X.4.3.2.8.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.DA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Dead Space Area (DA)"},{"SYMBOLID":"G*F*ACDR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Dead Space Area (DA) Rectangular","HIERARCHY":"2.X.4.3.2.8.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.DA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Dead Space Area (DA)"},{"SYMBOLID":"G*F*ACDC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Dead Space Area (DA) Circular","HIERARCHY":"2.X.4.3.2.8.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.DA.CIRCL","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Dead Space Area (DA)"},{"SYMBOLID":"G*F*ACZ---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Zone of Responsibility (ZOR)","HIERARCHY":"2.X.4.3.2.9","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ZOR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACZI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Zone of Responsibility (ZOR) Irregular","HIERARCHY":"2.X.4.3.2.9.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ZOR.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Zone of Responsibility (ZOR)"},{"SYMBOLID":"G*F*ACZR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Zone of Responsibility (ZOR) Rectangular","HIERARCHY":"2.X.4.3.2.9.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ZOR.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Zone of Responsibility (ZOR)"},{"SYMBOLID":"G*F*ACZC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Zone of Responsibility (ZOR) Circular","HIERARCHY":"2.X.4.3.2.9.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.ZOR.CIRCL","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Zone of Responsibility (ZOR)"},{"SYMBOLID":"G*F*ACB---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Build-Up Area (TBA)","HIERARCHY":"2.X.4.3.2.10","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TBA","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACBI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Target Build-Up Area (TBA) Irregular","HIERARCHY":"2.X.4.3.2.10.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TBA.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Build-Up Area (TBA)"},{"SYMBOLID":"G*F*ACBR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Target Build-Up Area (TBA) Rectangular","HIERARCHY":"2.X.4.3.2.10.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TBA.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Build-Up Area (TBA)"},{"SYMBOLID":"G*F*ACBC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Target Build-Up Area (TBA) Circular","HIERARCHY":"2.X.4.3.2.10.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TBA.CIRCL","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Build-Up Area (TBA)"},{"SYMBOLID":"G*F*ACV---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Value Area (TVAR)","HIERARCHY":"2.X.4.3.2.11","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TVAR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*ACVI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Target Value Area (TVAR) Irregular","HIERARCHY":"2.X.4.3.2.11.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TVAR.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Value Area (TVAR)"},{"SYMBOLID":"G*F*ACVR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Target Value Area (TVAR) Rectangular","HIERARCHY":"2.X.4.3.2.11.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TVAR.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Value Area (TVAR)"},{"SYMBOLID":"G*F*ACVC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Target Value Area (TVAR) Circular","HIERARCHY":"2.X.4.3.2.11.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TVAR.CIRCL","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas/Target Value Area (TVAR)"},{"SYMBOLID":"G*F*ACT---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Terminally Guided Munition Footprint (TGMF)","HIERARCHY":"2.X.4.3.2.12","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.C2ARS.TGMF","PATH":"Tactical Graphics/Fire Support/Areas/Command and Control Areas"},{"SYMBOLID":"G*F*AZ----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Target Acquisition Zones","HIERARCHY":"2.X.4.3.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*AZI---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Artillery Target Intelligence (ATI)","HIERARCHY":"2.X.4.3.3.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.ATIZ","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZII--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Irregular","HIERARCHY":"2.X.4.3.3.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.ATIZ.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI)"},{"SYMBOLID":"G*F*AZIR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Rectangular","HIERARCHY":"2.X.4.3.3.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.ATIZ.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI)"},{"SYMBOLID":"G*F*AZIC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Artillery Target Intelligence (ATI) Zone Circular","HIERARCHY":"2.X.4.3.3.1.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.ATIZ.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Artillery Target Intelligence (ATI)"},{"SYMBOLID":"G*F*AZX---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Call for Fire Zone (CFFZ)","HIERARCHY":"2.X.4.3.3.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFFZ","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZXI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Call For Fire Zone (CFFZ) Irregular","HIERARCHY":"2.X.4.3.3.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFFZ.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone (CFFZ)"},{"SYMBOLID":"G*F*AZXR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Call For Fire Zone (CFFZ) Rectangular","HIERARCHY":"2.X.4.3.3.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFFZ.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone (CFFZ)"},{"SYMBOLID":"G*F*AZXC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM","DESCRIPTION":"Call For Fire Zone (CFFZ) Circular","HIERARCHY":"2.X.4.3.3.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFFZ.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Call for Fire Zone (CFFZ)"},{"SYMBOLID":"G*F*AZC---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Censor Zone","HIERARCHY":"2.X.4.3.3.4","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CNS","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZCI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Censor Zone Irregular","HIERARCHY":"2.X.4.3.3.4.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CNS.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Zone"},{"SYMBOLID":"G*F*AZCR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM","DESCRIPTION":"Censor Zone Rectangular","HIERARCHY":"2.X.4.3.3.4.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CNS.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Zone"},{"SYMBOLID":"G*F*AZCC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Censor Zone Circular","HIERARCHY":"2.X.4.3.3.4.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CNS.RTG.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Censor Zone"},{"SYMBOLID":"G*F*AZF---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Critical Friendly Zone (CFZ)","HIERARCHY":"2.X.4.3.3.6","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFZ","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones"},{"SYMBOLID":"G*F*AZFI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.W.W1.","DESCRIPTION":"Critical Friendly Zone (CFZ) Irregular","HIERARCHY":"2.X.4.3.3.6.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFZ.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone (CFZ)"},{"SYMBOLID":"G*F*AZFR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Critical Friendly Zone (CFZ) Rectangular","HIERARCHY":"2.X.4.3.3.6.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFZ.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone (CFZ)"},{"SYMBOLID":"G*F*AZFC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.W.W1.AM.","DESCRIPTION":"Critical Friendly Zone (CFZ) Circular","HIERARCHY":"2.X.4.3.3.6.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.TGTAQZ.CFZ.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Target Acquisition Zones/Critical Friendly Zone (CFZ)"},{"SYMBOLID":"G*F*AX----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Radar Range Fans","HIERARCHY":"2.X.4.3.4","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.WPNRF","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*AXC---****X","GEOMETRY":"area","DRAWCATEGORY":"19","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.AM.","DESCRIPTION":"Circular Range Fan","HIERARCHY":"2.X.4.3.4.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.WPNRF.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Radar Range Fans"},{"SYMBOLID":"G*F*AXS---****X","GEOMETRY":"area","DRAWCATEGORY":"18","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.AM.AN.","DESCRIPTION":"Sector Range Fan","HIERARCHY":"2.X.4.3.4.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.WPNRF.SCR","PATH":"Tactical Graphics/Fire Support/Areas/Radar Range Fans"},{"SYMBOLID":"G*F*AK----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Kill Box","HIERARCHY":"2.X.4.3.5","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX","PATH":"Tactical Graphics/Fire Support/Areas"},{"SYMBOLID":"G*F*AKB---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Blue","HIERARCHY":"2.X.4.3.5.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.BLUE","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box"},{"SYMBOLID":"G*F*AKBC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Kill Box Blue Circular","HIERARCHY":"2.X.4.3.5.1.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.BLUE.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Blue"},{"SYMBOLID":"G*F*AKBI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.","DESCRIPTION":"Kill Box Blue Irregular","HIERARCHY":"2.X.4.3.5.1.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.BLUE.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Blue"},{"SYMBOLID":"G*F*AKBR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.","DESCRIPTION":"Kill Box Blue Rectangular","HIERARCHY":"2.X.4.3.5.1.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.BLUE.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Blue"},{"SYMBOLID":"G*F*AKP---****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Purple","HIERARCHY":"2.X.4.3.5.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.PURPLE","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box"},{"SYMBOLID":"G*F*AKPC--****X","GEOMETRY":"area","DRAWCATEGORY":"16","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"W.W1.T.AM.X.","DESCRIPTION":"Kill Box Purple Circular","HIERARCHY":"2.X.4.3.5.2.1","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.PURPLE.CIRCLR","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Purple"},{"SYMBOLID":"G*F*AKPI--****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"W.W1.T.X.","DESCRIPTION":"Kill Box Purple Irregular","HIERARCHY":"2.X.4.3.5.2.2","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.PURPLE.IRR","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Purple"},{"SYMBOLID":"G*F*AKPR--****X","GEOMETRY":"area","DRAWCATEGORY":"20","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"W.W1.T.AM.X.","DESCRIPTION":"Kill Box Purple Rectangular","HIERARCHY":"2.X.4.3.5.2.3","ALPHAHIERARCHY":"TACGRP.FSUPP.ARS.KLBOX.PURPLE.RTG","PATH":"Tactical Graphics/Fire Support/Areas/Kill Box/Purple"},{"SYMBOLID":"G*S*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Combat Service Support","HIERARCHY":"2.X.5","ALPHAHIERARCHY":"TACGRP.CSS","PATH":"Tactical Graphics"},{"SYMBOLID":"G*S*P-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Points","HIERARCHY":"2.X.5.1","ALPHAHIERARCHY":"TACGRP.CSS.PNT","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*PX----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.T1.W.W1.N.>","DESCRIPTION":"Ambulance Exchange Point","HIERARCHY":"2.X.5.1.1","ALPHAHIERARCHY":"TACGRP.CSS.PNT.AEP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PC----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Cannibalization Point","HIERARCHY":"2.X.5.1.2","ALPHAHIERARCHY":"TACGRP.CSS.PNT.CBNP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PY----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Casualty Collection Point","HIERARCHY":"2.X.5.1.3","ALPHAHIERARCHY":"TACGRP.CSS.PNT.CCP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PT----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Civilian Collection Point","HIERARCHY":"2.X.5.1.4","ALPHAHIERARCHY":"TACGRP.CSS.PNT.CVP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PD----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Detainee Collection Point","HIERARCHY":"2.X.5.1.5","ALPHAHIERARCHY":"TACGRP.CSS.PNT.DCP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Enemy Prisoner of War Collection Point","HIERARCHY":"2.X.5.1.6","ALPHAHIERARCHY":"TACGRP.CSS.PNT.EPWCP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PL----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Logistics Release Point","HIERARCHY":"2.X.5.1.7","ALPHAHIERARCHY":"TACGRP.CSS.PNT.LRP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Maintenance Collection Point","HIERARCHY":"2.X.5.1.8","ALPHAHIERARCHY":"TACGRP.CSS.PNT.MCP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PR----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Rearm, Refuel and Resupply Point","HIERARCHY":"2.X.5.1.9","ALPHAHIERARCHY":"TACGRP.CSS.PNT.RRRP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PU----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Refuel on the Move Point","HIERARCHY":"2.X.5.1.10","ALPHAHIERARCHY":"TACGRP.CSS.PNT.ROM","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Traffic Control Post (TCP)","HIERARCHY":"2.X.5.1.11","ALPHAHIERARCHY":"TACGRP.CSS.PNT.TCP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PI----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Trailer Transfer Point","HIERARCHY":"2.X.5.1.12","ALPHAHIERARCHY":"TACGRP.CSS.PNT.TTP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PN----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Unit Maintenance Collection Point","HIERARCHY":"2.X.5.1.13","ALPHAHIERARCHY":"TACGRP.CSS.PNT.UMC","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PS----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Supply Points","HIERARCHY":"2.X.5.1.14","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PSZ---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point General","HIERARCHY":"2.X.5.1.14.1","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.GNL","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSA---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class I","HIERARCHY":"2.X.5.1.14.2","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS1","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSB---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class II","HIERARCHY":"2.X.5.1.14.3","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS2","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSC---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class III","HIERARCHY":"2.X.5.1.14.4","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS3","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSD---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class IV","HIERARCHY":"2.X.5.1.14.5","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS4","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSE---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class V","HIERARCHY":"2.X.5.1.14.6","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS5","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSF---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VI","HIERARCHY":"2.X.5.1.14.7","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS6","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSG---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VII","HIERARCHY":"2.X.5.1.14.8","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS7","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSH---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class VIII","HIERARCHY":"2.X.5.1.14.9","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS8","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSI---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class IX","HIERARCHY":"2.X.5.1.14.10","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS9","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PSJ---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Supply Point Class X","HIERARCHY":"2.X.5.1.14.11","ALPHAHIERARCHY":"TACGRP.CSS.PNT.SPT.CLS10","PATH":"Tactical Graphics/Combat Service Support/Points/Supply Points"},{"SYMBOLID":"G*S*PA----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","MODIFIERS":"N.","DESCRIPTION":"Ammunition Points","HIERARCHY":"2.X.5.1.15","ALPHAHIERARCHY":"TACGRP.CSS.PNT.AP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*PAS---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Ammunition Supply Point (ASP)","HIERARCHY":"2.X.5.1.15.1","ALPHAHIERARCHY":"TACGRP.CSS.PNT.AP.ASP","PATH":"Tactical Graphics/Combat Service Support/Points/Ammunition Points"},{"SYMBOLID":"G*S*PAT---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.W.W1.N.","DESCRIPTION":"Ammunition Transfer Point (ATP)","HIERARCHY":"2.X.5.1.15.2","ALPHAHIERARCHY":"TACGRP.CSS.PNT.AP.ATP","PATH":"Tactical Graphics/Combat Service Support/Points/Ammunition Points"},{"SYMBOLID":"G*S*PP----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"H.T.T1.W.W1.","DESCRIPTION":"Medevac Pick-Up Point","HIERARCHY":"2.X.5.1.16","ALPHAHIERARCHY":"TACGRP.CSS.PNT.MPP","PATH":"Tactical Graphics/Combat Service Support/Points"},{"SYMBOLID":"G*S*L-----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"2.X.5.2","ALPHAHIERARCHY":"TACGRP.CSS.LNE","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*LC----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Convoys","HIERARCHY":"2.X.5.2.1","ALPHAHIERARCHY":"TACGRP.CSS.LNE.CNY","PATH":"Tactical Graphics/Combat Service Support/Lines"},{"SYMBOLID":"G*S*LCM---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"A.H.H1.W.W1.","DESCRIPTION":"Moving Convoy","HIERARCHY":"2.X.5.2.1.1","ALPHAHIERARCHY":"TACGRP.CSS.LNE.CNY.MCNY","PATH":"Tactical Graphics/Combat Service Support/Lines/Convoys"},{"SYMBOLID":"G*S*LCH---****X","GEOMETRY":"line","DRAWCATEGORY":"9","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"A.H.H1.W.W1.","DESCRIPTION":"Halted Convoy","HIERARCHY":"2.X.5.2.1.2","ALPHAHIERARCHY":"TACGRP.CSS.LNE.CNY.HCNY","PATH":"Tactical Graphics/Combat Service Support/Lines/Convoys"},{"SYMBOLID":"G*S*LR----****X","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Supply Routes","HIERARCHY":"2.X.5.2.2","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT","PATH":"Tactical Graphics/Combat Service Support/Lines"},{"SYMBOLID":"G*S*LRM---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Main Supply Route","HIERARCHY":"2.X.5.2.2.1","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT.MSRUT","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRA---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Alternate Supply Route","HIERARCHY":"2.X.5.2.2.2","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT.ASRUT","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRO---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route One-Way Traffic","HIERARCHY":"2.X.5.2.2.3","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT.1WTRFF","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRT---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route Alternating Traffic","HIERARCHY":"2.X.5.2.2.4","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT.ATRFF","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*LRW---****X","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","MODIFIERS":"T.","DESCRIPTION":"Supply Route Two-Way Traffic","HIERARCHY":"2.X.5.2.2.5","ALPHAHIERARCHY":"TACGRP.CSS.LNE.SLPRUT.2WTRFF","PATH":"Tactical Graphics/Combat Service Support/Lines/Supply Routes"},{"SYMBOLID":"G*S*A-----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Area","HIERARCHY":"2.X.5.3","ALPHAHIERARCHY":"TACGRP.CSS.ARA","PATH":"Tactical Graphics/Combat Service Support"},{"SYMBOLID":"G*S*AD----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Detainee Holding Area","HIERARCHY":"2.X.5.3.1","ALPHAHIERARCHY":"TACGRP.CSS.ARA.DHA","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AE----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Enemy Prisoner of War Holding Area","HIERARCHY":"2.X.5.3.2","ALPHAHIERARCHY":"TACGRP.CSS.ARA.EPWHA","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AR----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Forward Arming and Refueling Area","HIERARCHY":"2.X.5.3.3","ALPHAHIERARCHY":"TACGRP.CSS.ARA.FARP","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AH----****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Refugee Holding Area","HIERARCHY":"2.X.5.3.4","ALPHAHIERARCHY":"TACGRP.CSS.ARA.RHA","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*AS----****X","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Support Areas","HIERARCHY":"2.X.5.3.5","ALPHAHIERARCHY":"TACGRP.CSS.ARA.SUPARS","PATH":"Tactical Graphics/Combat Service Support/Area"},{"SYMBOLID":"G*S*ASB---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Brigade Support Area (BSA)","HIERARCHY":"2.X.5.3.5.1","ALPHAHIERARCHY":"TACGRP.CSS.ARA.SUPARS.BSA","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*S*ASD---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Division Support Area (DSA)","HIERARCHY":"2.X.5.3.5.2","ALPHAHIERARCHY":"TACGRP.CSS.ARA.SUPARS.DSA","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*S*ASR---****X","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"T.","DESCRIPTION":"Regimental Support Area (RSA)","HIERARCHY":"2.X.5.3.5.3","ALPHAHIERARCHY":"TACGRP.CSS.ARA.SUPARS.RSA","PATH":"Tactical Graphics/Combat Service Support/Area/Support Areas"},{"SYMBOLID":"G*O*------****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Other","HIERARCHY":"2.X.6","ALPHAHIERARCHY":"TACGRP.OTH","PATH":"Tactical Graphics"},{"SYMBOLID":"G*O*E-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Emergency","HIERARCHY":"2.X.6.1","ALPHAHIERARCHY":"TACGRP.OTH.ER","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*ED----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ditched Aircraft","HIERARCHY":"2.X.6.1.1","ALPHAHIERARCHY":"TACGRP.OTH.ER.DTHAC","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*EP----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Person in Water","HIERARCHY":"2.X.6.1.2","ALPHAHIERARCHY":"TACGRP.OTH.ER.PIW","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*ES----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"T.T1.H.W.W1.N.","DESCRIPTION":"Emergency Distress Call","HIERARCHY":"2.X.6.1.4","ALPHAHIERARCHY":"TACGRP.OTH.ER.DSTC","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*EV----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Distressed Vessel","HIERARCHY":"2.X.6.1.3","ALPHAHIERARCHY":"TACGRP.OTH.ER.DSTVES","PATH":"Tactical Graphics/Other/Emergency"},{"SYMBOLID":"G*O*H-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hazard","HIERARCHY":"2.X.6.2","ALPHAHIERARCHY":"TACGRP.OTH.HAZ","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*HM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Mine-Like Hazard","HIERARCHY":"2.X.6.2.1","ALPHAHIERARCHY":"TACGRP.OTH.HAZ.SML","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HN----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Navigational Hazard","HIERARCHY":"2.X.6.2.2","ALPHAHIERARCHY":"TACGRP.OTH.HAZ.NVGL","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HI----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Iceberg Hazard","HIERARCHY":"2.X.6.2.3","ALPHAHIERARCHY":"TACGRP.OTH.HAZ.IB","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*HO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Oil Rig Hazard","HIERARCHY":"2.X.6.2.4","ALPHAHIERARCHY":"TACGRP.OTH.HAZ.OLRG","PATH":"Tactical Graphics/Other/Hazard"},{"SYMBOLID":"G*O*S-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Sea Subsurface Returns","HIERARCHY":"2.X.6.3","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*SB----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bottom Return/Non-Milco","HIERARCHY":"2.X.6.3.1","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.BTMRTN","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*SBM---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Installation/Manmade","HIERARCHY":"2.X.6.3.1.1","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.BTMRTN.INS","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Non-Milco"},{"SYMBOLID":"G*O*SBN---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Seabed Rock/Stone Obstacle","HIERARCHY":"2.X.6.3.1.2","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.BTMRTN.SBRSOO","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Non-Milco"},{"SYMBOLID":"G*O*SBW---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck, Nondangerous","HIERARCHY":"2.X.6.3.1.3","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.BTMRTN.WRKND","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Non-Milco"},{"SYMBOLID":"G*O*SBX---****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck, Dangerous","HIERARCHY":"2.X.6.3.1.4","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.BTMRTN.WRKD","PATH":"Tactical Graphics/Other/Sea Subsurface Returns/Bottom Return-Non-Milco"},{"SYMBOLID":"G*O*SM----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Marine Life","HIERARCHY":"2.X.6.3.2","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.MARLFE","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*SS----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Anomaly","HIERARCHY":"2.X.6.3.3","ALPHAHIERARCHY":"TACGRP.OTH.SSUBSR.SA","PATH":"Tactical Graphics/Other/Sea Subsurface Returns"},{"SYMBOLID":"G*O*B-----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line","HIERARCHY":"2.X.6.4","ALPHAHIERARCHY":"TACGRP.OTH.BERLNE","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*BE----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Electronic","HIERARCHY":"2.X.6.4.1","ALPHAHIERARCHY":"TACGRP.OTH.BERLNE.ELC","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BA----****X","GEOMETRY":"line","DRAWCATEGORY":"2","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Acoustic","HIERARCHY":"2.X.6.4.2","ALPHAHIERARCHY":"TACGRP.OTH.BERLNE.ACU","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BT----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Torpedo","HIERARCHY":"2.X.6.4.3","ALPHAHIERARCHY":"TACGRP.OTH.BERLNE.TPD","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*BO----****X","GEOMETRY":"line","DRAWCATEGORY":"6","MAXPOINTS":"2","MINPOINTS":"2","DESCRIPTION":"Bearing Line Electro-Optical Intercept","HIERARCHY":"2.X.6.4.4","ALPHAHIERARCHY":"TACGRP.OTH.BERLNE.EOPI","PATH":"Tactical Graphics/Other/Bearing Line"},{"SYMBOLID":"G*O*F-----****X","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fix","HIERARCHY":"2.X.6.5","ALPHAHIERARCHY":"TACGRP.OTH.FIX","PATH":"Tactical Graphics/Other"},{"SYMBOLID":"G*O*FA----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Acoustic","HIERARCHY":"2.X.6.5.1","ALPHAHIERARCHY":"TACGRP.OTH.FIX.ACU","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"G*O*FE----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Electro-Magnetic","HIERARCHY":"2.X.6.5.2","ALPHAHIERARCHY":"TACGRP.OTH.FIX.EM","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"G*O*FO----****X","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fix Electro-Optical","HIERARCHY":"2.X.6.5.3","ALPHAHIERARCHY":"TACGRP.OTH.FIX.EOP","PATH":"Tactical Graphics/Other/Fix"},{"SYMBOLID":"W--------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"METOC","HIERARCHY":"3.X","ALPHAHIERARCHY":"METOC"},{"SYMBOLID":"WA-------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Atmospheric","HIERARCHY":"3.X.1","ALPHAHIERARCHY":"METOC.AMPHC","PATH":"METOC"},{"SYMBOLID":"WA--P----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Pressure Systems","HIERARCHY":"3.X.1.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-PL----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Low Pressure Center","HIERARCHY":"3.X.1.1.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LOWCTR","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WAS-PC----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cyclone Center","HIERARCHY":"3.X.1.1.1.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LOWCTR.CYC","PATH":"METOC/Atmospheric/Pressure Systems/Low Pressure Center"},{"SYMBOLID":"WAS-PLT---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause Low","HIERARCHY":"3.X.1.1.1.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LOWCTR.TROPLW","PATH":"METOC/Atmospheric/Pressure Systems/Low Pressure Center"},{"SYMBOLID":"WAS-PH----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"High Pressure Center","HIERARCHY":"3.X.1.1.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.HGHCTR","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WAS-PA----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Anticyclone Center","HIERARCHY":"3.X.1.1.2.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.HGHCTR.ACYC","PATH":"METOC/Atmospheric/Pressure Systems/High Pressure Center"},{"SYMBOLID":"WAS-PHT---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause High","HIERARCHY":"3.X.1.1.2.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.HGHCTR.TROPHG","PATH":"METOC/Atmospheric/Pressure Systems/High Pressure Center"},{"SYMBOLID":"WA-DPF-----L---","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Frontal Systems","HIERARCHY":"3.X.1.1.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WA-DPFC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Front","HIERARCHY":"3.X.1.1.3.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.CLDFRN","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFCU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Cold Front","HIERARCHY":"3.X.1.1.3.1.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.CLDFRN.UPP","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFC-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Frontogenisis","HIERARCHY":"3.X.1.1.3.1.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.CLDFRN.FRGS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFC-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cold Frontolysis","HIERARCHY":"3.X.1.1.3.1.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.CLDFRN.FRLS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Cold Front"},{"SYMBOLID":"WA-DPFW----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Front","HIERARCHY":"3.X.1.1.3.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.WRMFRN","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFWU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Warm Front","HIERARCHY":"3.X.1.1.3.2.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.WRMFRN.UPP","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFW-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Frontogenisis","HIERARCHY":"3.X.1.1.3.2.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.WRMFRN.FRGS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFW-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Warm Frontolysis","HIERARCHY":"3.X.1.1.3.2.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.WRMFRN.FRLS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Warm Front"},{"SYMBOLID":"WA-DPFO----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Occluded Front","HIERARCHY":"3.X.1.1.3.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.OCD","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFOU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Occluded Front","HIERARCHY":"3.X.1.1.3.3.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.OCD.UPP","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Occluded Front"},{"SYMBOLID":"WA-DPFO-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Occluded Frontolysis","HIERARCHY":"3.X.1.1.3.3.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.OCD.FRLS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Occluded Front"},{"SYMBOLID":"WA-DPFS----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Front","HIERARCHY":"3.X.1.1.3.4","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.STAT","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems"},{"SYMBOLID":"WA-DPFSU---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Stationary Front","HIERARCHY":"3.X.1.1.3.4.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.STAT.UPP","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA-DPFS-FG-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Frontogenesis","HIERARCHY":"3.X.1.1.3.4.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.STAT.FRGS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA-DPFS-FY-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stationary Frontolysis","HIERARCHY":"3.X.1.1.3.4.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.FRNSYS.STAT.FRLS","PATH":"METOC/Atmospheric/Pressure Systems/Frontal Systems/Stationary Front"},{"SYMBOLID":"WA--PX---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Lines","HIERARCHY":"3.X.1.1.4","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE","PATH":"METOC/Atmospheric/Pressure Systems"},{"SYMBOLID":"WA-DPXT----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Trough Axis","HIERARCHY":"3.X.1.1.4.1","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.TRUAXS","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXR----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ridge Axis","HIERARCHY":"3.X.1.1.4.2","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.RDGAXS","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXSQ---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Severe Squall Line","HIERARCHY":"3.X.1.1.4.3","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.SSL","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXIL---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Instability Line","HIERARCHY":"3.X.1.1.4.4","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.ISTB","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXSH---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Shear Line","HIERARCHY":"3.X.1.1.4.5","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.SHA","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXITCZ-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Inter-Tropical Convergance Zone","HIERARCHY":"3.X.1.1.4.6","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.ITCZ","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXCV---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Convergance Line","HIERARCHY":"3.X.1.1.4.7","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.CNGLNE","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WA-DPXITD--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Inter-Tropical Discontinuity","HIERARCHY":"3.X.1.1.4.8","ALPHAHIERARCHY":"METOC.AMPHC.PRS.LNE.ITD","PATH":"METOC/Atmospheric/Pressure Systems/Lines"},{"SYMBOLID":"WAS-T----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Turbulence","HIERARCHY":"3.X.1.2","ALPHAHIERARCHY":"METOC.AMPHC.TRB","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-TL----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Turbulence","HIERARCHY":"3.X.1.2.1","ALPHAHIERARCHY":"METOC.AMPHC.TRB.LIT","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TM----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Turbulence","HIERARCHY":"3.X.1.2.2","ALPHAHIERARCHY":"METOC.AMPHC.TRB.MOD","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TS----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Turbulence","HIERARCHY":"3.X.1.2.3","ALPHAHIERARCHY":"METOC.AMPHC.TRB.SVR","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-TE----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Extreme Turbulence","HIERARCHY":"3.X.1.2.4","ALPHAHIERARCHY":"METOC.AMPHC.TRB.EXT","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-T-MW--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mountain Waves","HIERARCHY":"3.X.1.2.5","ALPHAHIERARCHY":"METOC.AMPHC.TRB.MNTWAV","PATH":"METOC/Atmospheric/Turbulence"},{"SYMBOLID":"WAS-I----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Icing","HIERARCHY":"3.X.1.3","ALPHAHIERARCHY":"METOC.AMPHC.ICG","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-IC----P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Clear Icing","HIERARCHY":"3.X.1.3.1","ALPHAHIERARCHY":"METOC.AMPHC.ICG.CLR","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-ICL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Clear Icing","HIERARCHY":"3.X.1.3.1.1","ALPHAHIERARCHY":"METOC.AMPHC.ICG.CLR.LIT","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-ICM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Clear Icing","HIERARCHY":"3.X.1.3.1.2","ALPHAHIERARCHY":"METOC.AMPHC.ICG.CLR.MOD","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-ICS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Clear Icing","HIERARCHY":"3.X.1.3.1.3","ALPHAHIERARCHY":"METOC.AMPHC.ICG.CLR.SVR","PATH":"METOC/Atmospheric/Icing/Clear Icing"},{"SYMBOLID":"WAS-IR-----P---","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rime Icing","HIERARCHY":"3.X.1.3.2","ALPHAHIERARCHY":"METOC.AMPHC.ICG.RIME","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-IRL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rime Icing","HIERARCHY":"3.X.1.3.2.1","ALPHAHIERARCHY":"METOC.AMPHC.ICG.RIME.LIT","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IRM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Rime Icing","HIERARCHY":"3.X.1.3.2.2","ALPHAHIERARCHY":"METOC.AMPHC.ICG.RIME.MOD","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IRS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Rime Icing","HIERARCHY":"3.X.1.3.2.3","ALPHAHIERARCHY":"METOC.AMPHC.ICG.RIME.SVR","PATH":"METOC/Atmospheric/Icing/Rime Icing"},{"SYMBOLID":"WAS-IM-----P---","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mixed Icing","HIERARCHY":"3.X.1.3.3","ALPHAHIERARCHY":"METOC.AMPHC.ICG.MIX","PATH":"METOC/Atmospheric/Icing"},{"SYMBOLID":"WAS-IML---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Mixed Icing","HIERARCHY":"3.X.1.3.3.1","ALPHAHIERARCHY":"METOC.AMPHC.ICG.MIX.LIT","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WAS-IMM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Mixed Icing","HIERARCHY":"3.X.1.3.3.2","ALPHAHIERARCHY":"METOC.AMPHC.ICG.MIX.MOD","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WAS-IMS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Mixed Icing","HIERARCHY":"3.X.1.3.3.3","ALPHAHIERARCHY":"METOC.AMPHC.ICG.MIX.SVR","PATH":"METOC/Atmospheric/Icing/Mixed Icing"},{"SYMBOLID":"WA--W----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Winds","HIERARCHY":"3.X.1.4","ALPHAHIERARCHY":"METOC.AMPHC.WND","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-WC----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Calm Winds","HIERARCHY":"3.X.1.4.1","ALPHAHIERARCHY":"METOC.AMPHC.WND.CALM","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WAS-WP----P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"2","MINPOINTS":"2","MODIFIERS":"Z.Q.","DESCRIPTION":"Wind Plot","HIERARCHY":"3.X.1.4.2","ALPHAHIERARCHY":"METOC.AMPHC.WND.PLT","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA-DWJ-----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jet Stream","HIERARCHY":"3.X.1.4.3","ALPHAHIERARCHY":"METOC.AMPHC.WND.JTSM","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA-DWS-----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Stream Line","HIERARCHY":"3.X.1.4.4","ALPHAHIERARCHY":"METOC.AMPHC.WND.SMLNE","PATH":"METOC/Atmospheric/Winds"},{"SYMBOLID":"WA--CC---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Cloud Coverage","HIERARCHY":"3.X.1.5","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA--CCCS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Cloud Coverage Symbols","HIERARCHY":"3.X.1.5.1","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM","PATH":"METOC/Atmospheric/Cloud Coverage"},{"SYMBOLID":"WAS-CCCSCSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Clear Sky","HIERARCHY":"3.X.1.5.1.1","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.SKC","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSFCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Few Coverage","HIERARCHY":"3.X.1.5.1.2","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.FEW","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSSCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Scattered Coverage","HIERARCHY":"3.X.1.5.1.3","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.SCT","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSBCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Broken Coverage","HIERARCHY":"3.X.1.5.1.4","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.BKN","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSOCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Overcast Coverage","HIERARCHY":"3.X.1.5.1.5","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.OVC","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WAS-CCCSOBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sky Totally or Partially Obscured","HIERARCHY":"3.X.1.5.1.6","ALPHAHIERARCHY":"METOC.AMPHC.CUDCOV.SYM.STOPO","PATH":"METOC/Atmospheric/Cloud Coverage/Cloud Coverage Symbols"},{"SYMBOLID":"WA--WS---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Weather Symbols","HIERARCHY":"3.X.1.6","ALPHAHIERARCHY":"METOC.AMPHC.WTH","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-WSR--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain","HIERARCHY":"3.X.1.6.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSR-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Rain","HIERARCHY":"3.X.1.6.1.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMLIT","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Rain","HIERARCHY":"3.X.1.6.1.1.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMLIT.CTSLIT","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Light Rain"},{"SYMBOLID":"WAS-WSR-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Rain","HIERARCHY":"3.X.1.6.1.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMMOD","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Rain","HIERARCHY":"3.X.1.6.1.2.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMMOD.CTSMOD","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Moderate Rain"},{"SYMBOLID":"WAS-WSR-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Rain","HIERARCHY":"3.X.1.6.1.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMHVY","PATH":"METOC/Atmospheric/Weather Symbols/Rain"},{"SYMBOLID":"WAS-WSR-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Rain","HIERARCHY":"3.X.1.6.1.3.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RA.INMHVY.CTSHVY","PATH":"METOC/Atmospheric/Weather Symbols/Rain/Intermittent Heavy Rain"},{"SYMBOLID":"WAS-WSRF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Freezing Rain","HIERARCHY":"3.X.1.6.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZRA","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSRFL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Freezing Rain","HIERARCHY":"3.X.1.6.2.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZRA.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Rain"},{"SYMBOLID":"WAS-WSRFMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Freezing Rain","HIERARCHY":"3.X.1.6.2.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZRA.MODHVY","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Rain"},{"SYMBOLID":"WAS-WSRS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain Showers","HIERARCHY":"3.X.1.6.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASWR","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSRSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain Showers","HIERARCHY":"3.X.1.6.3.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASWR.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSRSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Rain Showers","HIERARCHY":"3.X.1.6.3.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASWR.MODHVY","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSRST-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Torrential Rain Showers","HIERARCHY":"3.X.1.6.3.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASWR.TOR","PATH":"METOC/Atmospheric/Weather Symbols/Rain Showers"},{"SYMBOLID":"WAS-WSD--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Drizzle","HIERARCHY":"3.X.1.6.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSD-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Drizzle","HIERARCHY":"3.X.1.6.4.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMLIT","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Drizzle","HIERARCHY":"3.X.1.6.4.1.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMLIT.CTSLIT","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Light Drizzle"},{"SYMBOLID":"WAS-WSD-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Drizzle","HIERARCHY":"3.X.1.6.4.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMMOD","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Drizzle","HIERARCHY":"3.X.1.6.4.2.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMMOD.CTSMOD","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Moderate Drizzle"},{"SYMBOLID":"WAS-WSD-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Drizzle","HIERARCHY":"3.X.1.6.4.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMHVY","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle"},{"SYMBOLID":"WAS-WSD-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Drizzle","HIERARCHY":"3.X.1.6.4.3.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DZ.INMHVY.CTSHVY","PATH":"METOC/Atmospheric/Weather Symbols/Drizzle/Intermittent Heavy Drizzle"},{"SYMBOLID":"WAS-WSDF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Freezing Drizzle","HIERARCHY":"3.X.1.6.5","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZDZ","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSDFL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Freezing Drizzle","HIERARCHY":"3.X.1.6.5.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZDZ.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Drizzle"},{"SYMBOLID":"WAS-WSDFMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Freezing Drizzle","HIERARCHY":"3.X.1.6.5.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZDZ.MODHVY","PATH":"METOC/Atmospheric/Weather Symbols/Freezing Drizzle"},{"SYMBOLID":"WAS-WSM--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Rain and Snow Mixed","HIERARCHY":"3.X.1.6.6","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASN","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSM-L-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain or Drizzle and Snow","HIERARCHY":"3.X.1.6.6.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASN.RDSLIT","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSM-MHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Heavy Rain or Drizzle and Snow","HIERARCHY":"3.X.1.6.6.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASN.RDSMH","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSMSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Rain and Snow Showers","HIERARCHY":"3.X.1.6.6.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASN.SWRLIT","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSMSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Rain and Snow Showers","HIERARCHY":"3.X.1.6.6.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.RASN.SWRMOD","PATH":"METOC/Atmospheric/Weather Symbols/Rain and Snow Mixed"},{"SYMBOLID":"WAS-WSS--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Snow","HIERARCHY":"3.X.1.6.7","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSS-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Light Snow","HIERARCHY":"3.X.1.6.7.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMLIT","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-LCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Light Snow","HIERARCHY":"3.X.1.6.7.1.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMLIT.CTSLIT","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Light Snow"},{"SYMBOLID":"WAS-WSS-MIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Moderate Snow","HIERARCHY":"3.X.1.6.7.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMMOD","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-MCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Moderate Snow","HIERARCHY":"3.X.1.6.7.2.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMMOD.CTSMOD","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Moderate Snow"},{"SYMBOLID":"WAS-WSS-HIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Intermittent Heavy Snow","HIERARCHY":"3.X.1.6.7.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMHVY","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSS-HCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Continuous Heavy Snow","HIERARCHY":"3.X.1.6.7.3.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.INMHVY.CTSHVY","PATH":"METOC/Atmospheric/Weather Symbols/Snow/Intermittent Heavy Snow"},{"SYMBOLID":"WAS-WSSBLMP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light/Moderate Blowing Snow","HIERARCHY":"3.X.1.6.7.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.BLSNLM","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSSBH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Heavy Blowing Snow","HIERARCHY":"3.X.1.6.7.5","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SN.BLSNHY","PATH":"METOC/Atmospheric/Weather Symbols/Snow"},{"SYMBOLID":"WAS-WSSG--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Grains","HIERARCHY":"3.X.1.6.8","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SG","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSSS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Snow Showers","HIERARCHY":"3.X.1.6.9","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SSWR","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSSSL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Snow Showers","HIERARCHY":"3.X.1.6.9.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SSWR.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Snow Showers"},{"SYMBOLID":"WAS-WSSSMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Heavy Snow Showers","HIERARCHY":"3.X.1.6.9.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.SSWR.MODHVY","PATH":"METOC/Atmospheric/Weather Symbols/Snow Showers"},{"SYMBOLID":"WAS-WSGR-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hail","HIERARCHY":"3.X.1.6.10","ALPHAHIERARCHY":"METOC.AMPHC.WTH.HL","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSGRL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hail - Light not Associated With Thunder","HIERARCHY":"3.X.1.6.10.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.HL.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Hail"},{"SYMBOLID":"WAS-WSGRMHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hail - Moderate/Heavy not Associated With Thunder","HIERARCHY":"3.X.1.6.10.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.HL.MODHVY","PATH":"METOC/Atmospheric/Weather Symbols/Hail"},{"SYMBOLID":"WAS-WSIC--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Crystals","HIERARCHY":"3.X.1.6.11","ALPHAHIERARCHY":"METOC.AMPHC.WTH.IC","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSPL-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Pellets","HIERARCHY":"3.X.1.6.12","ALPHAHIERARCHY":"METOC.AMPHC.WTH.PE","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSPLL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Ice Pellets","HIERARCHY":"3.X.1.6.12.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.PE.LIT","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WSPLM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate Ice Pellets","HIERARCHY":"3.X.1.6.12.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.PE.MOD","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WSPLH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Heavy Ice Pellets","HIERARCHY":"3.X.1.6.12.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.PE.HVY","PATH":"METOC/Atmospheric/Weather Symbols/Ice Pellets"},{"SYMBOLID":"WAS-WST--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Storms","HIERARCHY":"3.X.1.6.13","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WST-NPP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm - No Precipitation","HIERARCHY":"3.X.1.6.13.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.TS","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTMR-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Light to Moderate With Rain/Snow - No Hail","HIERARCHY":"3.X.1.6.13.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.TSLMNH","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTHR-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Heavy With Rain/Snow - No Hail","HIERARCHY":"3.X.1.6.13.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.TSHVNH","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTMH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Light to Moderate - With Hail","HIERARCHY":"3.X.1.6.13.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.TSLMWH","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSTHH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunderstorm Heavy - With Hail","HIERARCHY":"3.X.1.6.13.5","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.TSHVWH","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-FCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Funnel Cloud (Tornado/Waterspout)","HIERARCHY":"3.X.1.6.13.6","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.FC","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-SQP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Squall","HIERARCHY":"3.X.1.6.13.7","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.SQL","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WST-LGP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lightning","HIERARCHY":"3.X.1.6.13.8","ALPHAHIERARCHY":"METOC.AMPHC.WTH.STMS.LTG","PATH":"METOC/Atmospheric/Weather Symbols/Storms"},{"SYMBOLID":"WAS-WSFG-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fog","HIERARCHY":"3.X.1.6.14","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSFGPSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Shallow Patches","HIERARCHY":"3.X.1.6.14.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.SHWPTH","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGCSP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Shallow Continuous","HIERARCHY":"3.X.1.6.14.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.SHWCTS","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGP-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Patchy","HIERARCHY":"3.X.1.6.14.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.PTHY","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGSVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Sky Visible","HIERARCHY":"3.X.1.6.14.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.SKYVSB","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGSOP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Sky Obscured","HIERARCHY":"3.X.1.6.14.5","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.SKYOBD","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGFVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Freezing, Sky Visible","HIERARCHY":"3.X.1.6.14.6","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.FZSV","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSFGFOP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog - Freezing, Sky Not Visible","HIERARCHY":"3.X.1.6.14.7","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FG.FZSNV","PATH":"METOC/Atmospheric/Weather Symbols/Fog"},{"SYMBOLID":"WAS-WSBR--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mist","HIERARCHY":"3.X.1.6.15","ALPHAHIERARCHY":"METOC.AMPHC.WTH.MIST","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSFU--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Smoke Point","HIERARCHY":"3.X.1.6.16","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FU","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSHZ--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Haze","HIERARCHY":"3.X.1.6.17","ALPHAHIERARCHY":"METOC.AMPHC.WTH.HZ","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS--SD--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dust or Sand","HIERARCHY":"3.X.1.6.18","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DT/SD","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSDSLMP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light to Moderate Dust/Sand Storm","HIERARCHY":"3.X.1.6.18.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DT/SD.LITMOD","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDSS-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Severe Dust/Sand Storm","HIERARCHY":"3.X.1.6.18.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DT/SD.SVR","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDD--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dust Devil","HIERARCHY":"3.X.1.6.18.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DT/SD.DTDVL","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSDB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Blowing Dust or Sand","HIERARCHY":"3.X.1.6.18.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.DT/SD.BLDTSD","PATH":"METOC/Atmospheric/Weather Symbols/Dust or Sand"},{"SYMBOLID":"WAS-WSTS-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tropical Storm Systems","HIERARCHY":"3.X.1.6.19","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TPLSYS","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSTSD-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Depression","HIERARCHY":"3.X.1.6.19.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TPLSYS.TROPDN","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSTSS-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Storm","HIERARCHY":"3.X.1.6.19.2","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TPLSYS.TROPSM","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSTSH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hurricane/Typhoon","HIERARCHY":"3.X.1.6.19.3","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TPLSYS.HC","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WA-DWSTSWA--A--","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Storm Wind Areas and Date/Time Labels","HIERARCHY":"3.X.1.6.19.4","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TPLSYS.TSWADL","PATH":"METOC/Atmospheric/Weather Symbols/Tropical Storm Systems"},{"SYMBOLID":"WAS-WSVE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Eruption","HIERARCHY":"3.X.1.6.20","ALPHAHIERARCHY":"METOC.AMPHC.WTH.VOLERN","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSVA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Ash","HIERARCHY":"3.X.1.6.20.1","ALPHAHIERARCHY":"METOC.AMPHC.WTH.VOLERN.VOLASH","PATH":"METOC/Atmospheric/Weather Symbols/Volcanic Eruption"},{"SYMBOLID":"WAS-WST-LVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Tropopause Level","HIERARCHY":"3.X.1.6.21","ALPHAHIERARCHY":"METOC.AMPHC.WTH.TROPLV","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSF-LVP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Freezing Level","HIERARCHY":"3.X.1.6.22","ALPHAHIERARCHY":"METOC.AMPHC.WTH.FZLVL","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WAS-WSUKP-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Precipiation of Unknown Type and Intensity","HIERARCHY":"3.X.1.6.23","ALPHAHIERARCHY":"METOC.AMPHC.WTH.POUTAI","PATH":"METOC/Atmospheric/Weather Symbols"},{"SYMBOLID":"WA--BA---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bounded Areas of Weather","HIERARCHY":"3.X.1.7","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA-DBAIF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"IFR","HIERARCHY":"3.X.1.7.1","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.IFR","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAMV----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"MVFR","HIERARCHY":"3.X.1.7.2","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.MVFR","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBATB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Turbulence","HIERARCHY":"3.X.1.7.3","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.TRB","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAI-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Icing","HIERARCHY":"3.X.1.7.4","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.ICG","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBALPNC--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Precipiation Non-Convective","HIERARCHY":"3.X.1.7.5","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.LPNCI","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBALPC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Precipitation Convective","HIERARCHY":"3.X.1.7.5.1","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.LPNCI.LPC","PATH":"METOC/Atmospheric/Bounded Areas of Weather/Precipiation Non-Convective"},{"SYMBOLID":"WA-DBAFP----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Frozen Precipitation","HIERARCHY":"3.X.1.7.6","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.FZPPN","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAT-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Thunderstorm","HIERARCHY":"3.X.1.7.7","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.TS","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAFG----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Weather Fog","HIERARCHY":"3.X.1.7.8","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.FG","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAD-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Weather Sand","HIERARCHY":"3.X.1.7.9","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.DT/SD","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA-DBAFF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","MODIFIERS":"H.H1.","DESCRIPTION":"Weather Freeform","HIERARCHY":"3.X.1.7.10","ALPHAHIERARCHY":"METOC.AMPHC.BDAWTH.ODFF","PATH":"METOC/Atmospheric/Bounded Areas of Weather"},{"SYMBOLID":"WA--IP---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Isopleths","HIERARCHY":"3.X.1.8","ALPHAHIERARCHY":"METOC.AMPHC.ISP","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WA-DIPIB---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isobar Surface","HIERARCHY":"3.X.1.8.1","ALPHAHIERARCHY":"METOC.AMPHC.ISP.ISB","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPCO---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Upper Air","HIERARCHY":"3.X.1.8.2","ALPHAHIERARCHY":"METOC.AMPHC.ISP.CTUR","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPIS---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isotherm","HIERARCHY":"3.X.1.8.3","ALPHAHIERARCHY":"METOC.AMPHC.ISP.IST","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPIT---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isotach","HIERARCHY":"3.X.1.8.4","ALPHAHIERARCHY":"METOC.AMPHC.ISP.ISH","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPID---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isodrosotherm","HIERARCHY":"3.X.1.8.5","ALPHAHIERARCHY":"METOC.AMPHC.ISP.ISD","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPTH---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Isopleths Thickness","HIERARCHY":"3.X.1.8.6","ALPHAHIERARCHY":"METOC.AMPHC.ISP.THK","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WA-DIPFF---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Operator Freeform","HIERARCHY":"3.X.1.8.7","ALPHAHIERARCHY":"METOC.AMPHC.ISP.ODFF","PATH":"METOC/Atmospheric/Isopleths"},{"SYMBOLID":"WAS-G----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"State of the Ground","HIERARCHY":"3.X.1.9","ALPHAHIERARCHY":"METOC.AMPHC.STOG","PATH":"METOC/Atmospheric"},{"SYMBOLID":"WAS-GN---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Without Snow or Measureable Ice Cover","HIERARCHY":"3.X.1.9.1","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC","PATH":"METOC/Atmospheric/State of the Ground"},{"SYMBOLID":"WAS-GND-NCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Sand","HIERARCHY":"3.X.1.9.1.1","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.SUFDRY","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Moist","HIERARCHY":"3.X.1.9.1.2","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.SUFMST","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNW-SWP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Wet, Standing Water in Small or Large Pools","HIERARCHY":"3.X.1.9.1.3","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.SUFWET","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNFL--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Flooded","HIERARCHY":"3.X.1.9.1.4","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.SUFFLD","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNFZ--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Surface Frozen","HIERARCHY":"3.X.1.9.1.5","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.SUFFZN","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNG-TIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Glaze (Thin Ice) on Ground","HIERARCHY":"3.X.1.9.1.6","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.GLZGRD","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDN-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Dust or Sand not Covering Ground Completely","HIERARCHY":"3.X.1.9.1.7","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.LDNCGC","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDTCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thin Loose Dry Dust or Sand Covering Ground Completely","HIERARCHY":"3.X.1.9.1.8","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.TLDCGC","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNLDMCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Moderate/Thick Loose Dry Dust or Sand Covering Ground Completely","HIERARCHY":"3.X.1.9.1.9","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.MLDCGC","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GNDEWCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Extremely Dry With Cracks","HIERARCHY":"3.X.1.9.1.10","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WOSMIC.EXTDWC","PATH":"METOC/Atmospheric/State of the Ground/Without Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GS---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"With Snow or Measureable Ice Cover","HIERARCHY":"3.X.1.9.2","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC","PATH":"METOC/Atmospheric/State of the Ground"},{"SYMBOLID":"WAS-GSI---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Predominately Ice Covered","HIERARCHY":"3.X.1.9.2.1","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.PDMIC","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Compact or Wet Snow (With or Without Ice) Covering Less than One-Hald of Ground","HIERARCHY":"3.X.1.9.2.2","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.CWSNLH","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Compact or Wet Snow Covering At Least One-Half Ground, but Ground not Completely Covered","HIERARCHY":"3.X.1.9.2.3","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.CSNALH","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCCEP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Even Layer of Compact or Wet Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.4","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.ELCSCG","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSCCUP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Uneven Layer of Compact or Wet Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.5","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.ULCSCG","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Snow Covering Less than One-Half of Ground","HIERARCHY":"3.X.1.9.2.6","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.LDSNLH","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Loose Dry Snow Covering at Least One-Half Ground, but not Completely Covered","HIERARCHY":"3.X.1.9.2.7","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.LDSALH","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLCEP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Even Layer of Loose Dry Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.8","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.ELDSCG","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSLCUP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Uneven Layer of Loose Dry Snow Covering Ground Completely","HIERARCHY":"3.X.1.9.2.9","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.ULDSCG","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WAS-GSSDC-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Covering Ground Completely, Deep Drifts","HIERARCHY":"3.X.1.9.2.10","ALPHAHIERARCHY":"METOC.AMPHC.STOG.WSMIC.SCGC","PATH":"METOC/Atmospheric/State of the Ground/With Snow or Measureable Ice Cover"},{"SYMBOLID":"WO-------------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Oceanic","HIERARCHY":"3.X.2","ALPHAHIERARCHY":"METOC.OCA","PATH":"METOC"},{"SYMBOLID":"WO--I----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Systems","HIERARCHY":"3.X.2.1","ALPHAHIERARCHY":"METOC.OCA.ISYS","PATH":"METOC/Oceanic"},{"SYMBOLID":"WOS-IB----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Icebergs","HIERARCHY":"3.X.2.1.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IBM---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Icebergs","HIERARCHY":"3.X.2.1.1.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.MNY","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Belts and Strips","HIERARCHY":"3.X.2.1.1.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.BAS","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBG---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Iceberg - General","HIERARCHY":"3.X.2.1.1.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.GNL","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBMG--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Icebergs - General","HIERARCHY":"3.X.2.1.1.4","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.MNYGNL","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bergy Bit","HIERARCHY":"3.X.2.1.1.5","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.BB","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBBBM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Bergy Bits","HIERARCHY":"3.X.2.1.1.6","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.MNYBB","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBGL--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Growler","HIERARCHY":"3.X.2.1.1.7","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.GWL","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBGLM-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Many Growlers","HIERARCHY":"3.X.2.1.1.8","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.MNYGWL","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBF---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Floeberg","HIERARCHY":"3.X.2.1.1.9","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.FBG","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WOS-IBII--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Island","HIERARCHY":"3.X.2.1.1.10","ALPHAHIERARCHY":"METOC.OCA.ISYS.IB.II","PATH":"METOC/Oceanic/Ice Systems/Icebergs"},{"SYMBOLID":"WO--IC---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ice Concentration","HIERARCHY":"3.X.2.1.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.ICN","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ICWB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bergy Water","HIERARCHY":"3.X.2.1.2.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.ICN.BW","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ICWR--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Water With Radar Targets","HIERARCHY":"3.X.2.1.2.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.ICN.WWRT","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ICIF--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Free","HIERARCHY":"3.X.2.1.2.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.ICN.IF","PATH":"METOC/Oceanic/Ice Systems/Ice Concentration"},{"SYMBOLID":"WOS-ID---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dynamic Processes","HIERARCHY":"3.X.2.1.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.DYNPRO","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IDC---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Convergence","HIERARCHY":"3.X.2.1.3.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.DYNPRO.CNG","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-IDD---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Divergence","HIERARCHY":"3.X.2.1.3.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.DYNPRO.DVG","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-IDS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Shearing or Shear Zone","HIERARCHY":"3.X.2.1.3.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.DYNPRO.SHAZ","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WO-DIDID---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Drift (Direction)","HIERARCHY":"3.X.2.1.3.4","ALPHAHIERARCHY":"METOC.OCA.ISYS.DYNPRO.ID","PATH":"METOC/Oceanic/Ice Systems/Dynamic Processes"},{"SYMBOLID":"WOS-II----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sea Ice","HIERARCHY":"3.X.2.1.4","ALPHAHIERARCHY":"METOC.OCA.ISYS.SI","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-IITM--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Thickness (Observed)","HIERARCHY":"3.X.2.1.4.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.SI.ITOBS","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WOS-IITE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ice Thickness (Estimated)","HIERARCHY":"3.X.2.1.4.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.SI.ITEST","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WOS-IIP---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Melt Puddles or Flooded Ice","HIERARCHY":"3.X.2.1.4.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.SI.MPOFI","PATH":"METOC/Oceanic/Ice Systems/Sea Ice"},{"SYMBOLID":"WO--IL---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Limits","HIERARCHY":"3.X.2.1.5","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WO-DILOV---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Visual Observation","HIERARCHY":"3.X.2.1.5.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.LOVO","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILUC---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Undercast","HIERARCHY":"3.X.2.1.5.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.LOU","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILOR---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Limit of Radar Observation","HIERARCHY":"3.X.2.1.5.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.LORO","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIEO--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Observed Ice Edge","HIERARCHY":"3.X.2.1.5.4","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.OIEOB","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIEE--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Estimated Ice Edge","HIERARCHY":"3.X.2.1.5.5","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.EIEOB","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO-DILIER--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ice Edge From Radar","HIERARCHY":"3.X.2.1.5.6","ALPHAHIERARCHY":"METOC.OCA.ISYS.LMT.IEOBFR","PATH":"METOC/Oceanic/Ice Systems/Limits"},{"SYMBOLID":"WO--IO---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Openings in the Ice","HIERARCHY":"3.X.2.1.6","ALPHAHIERARCHY":"METOC.OCA.ISYS.OITI","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WO-DIOC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cracks","HIERARCHY":"3.X.2.1.6.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.OITI.CRK","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOCS---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cracks Specific-Location","HIERARCHY":"3.X.2.1.6.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.OITI.CRKASL","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOL----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ice Openings-Lead","HIERARCHY":"3.X.2.1.6.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.OITI.LED","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WO-DIOLF---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Frozen Lead","HIERARCHY":"3.X.2.1.6.4","ALPHAHIERARCHY":"METOC.OCA.ISYS.OITI.FZLED","PATH":"METOC/Oceanic/Ice Systems/Openings in the Ice"},{"SYMBOLID":"WOS-ISC---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow Cover","HIERARCHY":"3.X.2.1.7","ALPHAHIERARCHY":"METOC.OCA.ISYS.SC","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ISS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sastrugi","HIERARCHY":"3.X.2.1.7.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.SC.SWO","PATH":"METOC/Oceanic/Ice Systems/Snow Cover"},{"SYMBOLID":"WOS-IT---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Topographical Features","HIERARCHY":"3.X.2.1.8","ALPHAHIERARCHY":"METOC.OCA.ISYS.TOPFTR","PATH":"METOC/Oceanic/Ice Systems"},{"SYMBOLID":"WOS-ITRH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ridges or Hummocks","HIERARCHY":"3.X.2.1.8.1","ALPHAHIERARCHY":"METOC.OCA.ISYS.TOPFTR.HUM","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WOS-ITR---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rafting","HIERARCHY":"3.X.2.1.8.2","ALPHAHIERARCHY":"METOC.OCA.ISYS.TOPFTR.RFTG","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WOS-ITBB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Jammed Brash Barrier","HIERARCHY":"3.X.2.1.8.3","ALPHAHIERARCHY":"METOC.OCA.ISYS.TOPFTR.JBB","PATH":"METOC/Oceanic/Ice Systems/Topographical Features"},{"SYMBOLID":"WO--H----------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hydrography","HIERARCHY":"3.X.2.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--HD---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Depth","HIERARCHY":"3.X.2.2.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DPH","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HDS---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","MODIFIERS":"X.","DESCRIPTION":"Soundings","HIERARCHY":"3.X.2.2.1.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DPH.SNDG","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDL---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Depth Curve","HIERARCHY":"3.X.2.2.1.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DPH.CRV","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDC---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Depth Contour","HIERARCHY":"3.X.2.2.1.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DPH.CTUR","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO-DHDDA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Depth Area","HIERARCHY":"3.X.2.2.1.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DPH.ARA","PATH":"METOC/Oceanic/Hydrography/Depth"},{"SYMBOLID":"WO--HC---------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Coastal Hydrography","HIERARCHY":"3.X.2.2.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WO-DHCC----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Coastline","HIERARCHY":"3.X.2.2.2.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.CSTLN","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCI-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Island","HIERARCHY":"3.X.2.2.2.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.ISND","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCB-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach","HIERARCHY":"3.X.2.2.2.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.BEH","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCW-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Water","HIERARCHY":"3.X.2.2.2.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.H2O","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCF--------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Foreshore","HIERARCHY":"3.X.2.2.2.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.FSH1","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography"},{"SYMBOLID":"WO-DHCF----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Foreshore Line","HIERARCHY":"3.X.2.2.2.5.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.FSH1.FSH2","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography/Foreshore"},{"SYMBOLID":"WO-DHCF-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Foreshore Area","HIERARCHY":"3.X.2.2.2.5.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.CSTHYD.FSH1.FSH3","PATH":"METOC/Oceanic/Hydrography/Coastal Hydrography/Foreshore"},{"SYMBOLID":"WO-DHP---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ports and Harbors","HIERARCHY":"3.X.2.2.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WO--HPB--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Ports","HIERARCHY":"3.X.2.2.3.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WOS-HPB-O-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Berths (Onshore)","HIERARCHY":"3.X.2.2.3.1.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.BRHSO","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPB-A-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Berths (Anchor)","HIERARCHY":"3.X.2.2.3.1.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.BRHSA","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPBA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Anchorage","HIERARCHY":"3.X.2.2.3.1.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.ANCRG1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBA---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Anchorage Line","HIERARCHY":"3.X.2.2.3.1.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.ANCRG2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Anchorage Area","HIERARCHY":"3.X.2.2.3.1.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.ANCRG3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPCP--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Call in Point","HIERARCHY":"3.X.2.2.3.1.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.CIP","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WO-DHPBP---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Pier","HIERARCHY":"3.X.2.2.3.1.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.PRT.PWQ","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Ports"},{"SYMBOLID":"WOS-HPF--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Fishing","HIERARCHY":"3.X.2.2.3.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FSG","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WOS-HPFH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fishing Harbor","HIERARCHY":"3.X.2.2.3.2.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FSG.FSGHBR","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fish Stakes/Traps/Weirs","HIERARCHY":"3.X.2.2.3.2.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FSG.FSTK1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFS---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fish Stakes/Traps/Weirs","HIERARCHY":"3.X.2.2.3.2.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FSG.FSTK2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WOS-HPFF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Fish Stakes/Traps/Weirs","HIERARCHY":"3.X.2.2.3.2.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FSG.FSTK3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Fishing"},{"SYMBOLID":"WO--HPM--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Facilities","HIERARCHY":"3.X.2.2.3.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WO-DHPMD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Drydock","HIERARCHY":"3.X.2.2.3.3.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.DDCK","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPML--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Landing Place","HIERARCHY":"3.X.2.2.3.3.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.LNDPLC","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Offshore Loading Facility Point","HIERARCHY":"3.X.2.2.3.3.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.OSLF1","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO---L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Offshore Loading Facility Line","HIERARCHY":"3.X.2.2.3.3.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.OSLF2","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMO----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Offshore Loading Facility Area","HIERARCHY":"3.X.2.2.3.3.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.OSLF3","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMRA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ramp Above Water","HIERARCHY":"3.X.2.2.3.3.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.RAMPAW","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPMRB--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ramp Below Water","HIERARCHY":"3.X.2.2.3.3.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.RAMPBW","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-R-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Landing Ring","HIERARCHY":"3.X.2.2.3.3.8","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.LNDRNG","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-FC-L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ferry Crossing","HIERARCHY":"3.X.2.2.3.3.9","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.FRYCSG","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPM-CC-L---","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cable Ferry Crossing","HIERARCHY":"3.X.2.2.3.3.10","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.CFCSG","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WOS-HPD---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Dolphin","HIERARCHY":"3.X.2.2.3.3.11","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.FAC.DOPN","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Facilities"},{"SYMBOLID":"WO-DHPSP-------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Shoreline Protection","HIERARCHY":"3.X.2.2.3.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.SHRLNE","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors"},{"SYMBOLID":"WO-DHPSPA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jetty Above Water","HIERARCHY":"3.X.2.2.3.4.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.SHRLNE.BWGJAW","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO-DHPSPB--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Jetty Below Water","HIERARCHY":"3.X.2.2.3.4.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.SHRLNE.BWGJBW","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO-DHPSPS--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Seawall","HIERARCHY":"3.X.2.2.3.4.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.PRTHBR.SHRLNE.SW","PATH":"METOC/Oceanic/Hydrography/Ports and Harbors/Shoreline Protection"},{"SYMBOLID":"WO--HA---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Aids to Navigation","HIERARCHY":"3.X.2.2.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HABA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Beacon","HIERARCHY":"3.X.2.2.4.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.BCN","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABB--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Buoy Default","HIERARCHY":"3.X.2.2.4.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.BUOY","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABM--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Marker","HIERARCHY":"3.X.2.2.4.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.MRK","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABP-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Perches/Stakes","HIERARCHY":"3.X.2.2.4.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.PRH1","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HABP--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Perches/Stakes","HIERARCHY":"3.X.2.2.4.4.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.PRH1.PRH2","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation/Perches-Stakes"},{"SYMBOLID":"WO-DHABP----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Perches/Stakes","HIERARCHY":"3.X.2.2.4.4.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.PRH1.PRH3","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation/Perches-Stakes"},{"SYMBOLID":"WOS-HAL---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light","HIERARCHY":"3.X.2.2.4.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.LIT","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WO-DHALLA--L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Leading Line","HIERARCHY":"3.X.2.2.4.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.LDGLNE","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HALV--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Light Vessel/Lightship","HIERARCHY":"3.X.2.2.4.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.LITVES","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WOS-HALH--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lighthouse","HIERARCHY":"3.X.2.2.4.8","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.ATN.LITHSE","PATH":"METOC/Oceanic/Hydrography/Aids to Navigation"},{"SYMBOLID":"WO--HH---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Dangers/Hazards","HIERARCHY":"3.X.2.2.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-HHRS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock Submerged","HIERARCHY":"3.X.2.2.5.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.RCKSBM","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHRA--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock Awashed","HIERARCHY":"3.X.2.2.5.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.RCKAWD","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHD-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Underwater Hazard","HIERARCHY":"3.X.2.2.5.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.UH2DAN","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDF-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Foul Ground","HIERARCHY":"3.X.2.2.5.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.FLGRD1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDF--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Foul Ground Point","HIERARCHY":"3.X.2.2.5.4.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.FLGRD1.FLGRD2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Foul Ground"},{"SYMBOLID":"WO-DHHDF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Foul Ground Area","HIERARCHY":"3.X.2.2.5.4.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.FLGRD1.FLGRD3","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Foul Ground"},{"SYMBOLID":"WO-DHHDK-------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Kelp/Seaweed","HIERARCHY":"3.X.2.2.5.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.KLP1","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDK--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Kelp/Seaweed Point","HIERARCHY":"3.X.2.2.5.5.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.KLP1.KLP2","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDK----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Kelp/Seaweed Area","HIERARCHY":"3.X.2.2.5.5.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.KLP1.KLP3","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Kelp-Seaweed"},{"SYMBOLID":"WOS-HHDMD------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mine-Naval","HIERARCHY":"3.X.2.2.5.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.MNENAV","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDMDBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mine-Naval (Doubtful)","HIERARCHY":"3.X.2.2.5.6.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.MNENAV.DBT","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Mine-Naval"},{"SYMBOLID":"WOS-HHDMDFP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mine-Naval (Definite)","HIERARCHY":"3.X.2.2.5.6.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.MNENAV.DEFN","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Mine-Naval"},{"SYMBOLID":"WOS-HHDS--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snags/Stumps","HIERARCHY":"3.X.2.2.5.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.SNAG","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDW--P----","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Wreck","HIERARCHY":"3.X.2.2.5.8","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.WRK","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDWA-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck (Uncovers)","HIERARCHY":"3.X.2.2.5.8.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.WRK.UCOV","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Wreck"},{"SYMBOLID":"WOS-HHDWB-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Wreck (Submerged)","HIERARCHY":"3.X.2.2.5.8.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.WRK.SBM","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards/Wreck"},{"SYMBOLID":"WO-DHHDB---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Breaker","HIERARCHY":"3.X.2.2.5.9","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.BRKS","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDR---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Reef","HIERARCHY":"3.X.2.2.5.10","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.REEF","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WOS-HHDE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Eddies/Overfalls/Tide Rips","HIERARCHY":"3.X.2.2.5.11","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.EOTR","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO-DHHDD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Discolored Water","HIERARCHY":"3.X.2.2.5.12","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.DANHAZ.DCDH2O","PATH":"METOC/Oceanic/Hydrography/Dangers-Hazards"},{"SYMBOLID":"WO--BF---------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Features","HIERARCHY":"3.X.2.2.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-BFC--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Characteristics","HIERARCHY":"3.X.2.2.6.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR","PATH":"METOC/Oceanic/Hydrography/Bottom Features"},{"SYMBOLID":"WOS-BFC-S-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sand","HIERARCHY":"3.X.2.2.6.1.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.SD","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-M-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Mud","HIERARCHY":"3.X.2.2.6.1.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.MUD","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-CLP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Clay","HIERARCHY":"3.X.2.2.6.1.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.CLAY","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-SIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Silt","HIERARCHY":"3.X.2.2.6.1.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.SLT","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-STP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Stones","HIERARCHY":"3.X.2.2.6.1.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.STNE","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-G-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Gravel","HIERARCHY":"3.X.2.2.6.1.6","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.GVL","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-P-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pebbles","HIERARCHY":"3.X.2.2.6.1.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.PBL","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-CBP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Cobbles","HIERARCHY":"3.X.2.2.6.1.8","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.COBL","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-R-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rock","HIERARCHY":"3.X.2.2.6.1.9","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.RCK","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-COP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Coral","HIERARCHY":"3.X.2.2.6.1.10","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.CRL","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFC-SHP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Shell","HIERARCHY":"3.X.2.2.6.1.11","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.BTMCHR.SHE","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Bottom Characteristics"},{"SYMBOLID":"WOS-BFQ--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Qualifying Terms","HIERARCHY":"3.X.2.2.6.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.QLFYTM","PATH":"METOC/Oceanic/Hydrography/Bottom Features"},{"SYMBOLID":"WOS-BFQ-F-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fine","HIERARCHY":"3.X.2.2.6.2.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.QLFYTM.FNE","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WOS-BFQ-M-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Medium","HIERARCHY":"3.X.2.2.6.2.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.QLFYTM.MDM","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WOS-BFQ-C-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Coarse","HIERARCHY":"3.X.2.2.6.2.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.BTMFAT.QLFYTM.CSE","PATH":"METOC/Oceanic/Hydrography/Bottom Features/Qualifying Terms"},{"SYMBOLID":"WO--TCC--------","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Tide and Current","HIERARCHY":"3.X.2.2.7","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR","PATH":"METOC/Oceanic/Hydrography"},{"SYMBOLID":"WOS-TCCW--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Water Turbulence","HIERARCHY":"3.X.2.2.7.1","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR.H2OTRB","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO-DTCCCFE-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Ebb Tide","HIERARCHY":"3.X.2.2.7.2","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR.EBB","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO-DTCCCFF-L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Flood Tide","HIERARCHY":"3.X.2.2.7.3","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR.FLOOD","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WOS-TCCTD-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tide Data Point","HIERARCHY":"3.X.2.2.7.4","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR.TDEDP","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WOS-TCCTG-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tide Gauge","HIERARCHY":"3.X.2.2.7.5","ALPHAHIERARCHY":"METOC.OCA.HYDGRY.TDECUR.TDEG","PATH":"METOC/Oceanic/Hydrography/Tide and Current"},{"SYMBOLID":"WO--O----------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Oceanography","HIERARCHY":"3.X.2.3","ALPHAHIERARCHY":"METOC.OCA.OCNGRY","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--OB---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bioluminescence","HIERARCHY":"3.X.2.3.1","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM","PATH":"METOC/Oceanic/Oceanography"},{"SYMBOLID":"WO-DOBVA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 1-2","HIERARCHY":"3.X.2.3.1.1","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR1-2","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 2-3","HIERARCHY":"3.X.2.3.1.2","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR2-3","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVC----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 3-4","HIERARCHY":"3.X.2.3.1.3","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR3-4","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVD----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 4-5","HIERARCHY":"3.X.2.3.1.4","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR4-5","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVE----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 5-6","HIERARCHY":"3.X.2.3.1.5","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR5-6","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVF----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 6-7","HIERARCHY":"3.X.2.3.1.6","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR6-7","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVG----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 7-8","HIERARCHY":"3.X.2.3.1.7","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR7-8","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVH----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 8-9","HIERARCHY":"3.X.2.3.1.8","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR8-9","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO-DOBVI----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"VDR Level 9-10","HIERARCHY":"3.X.2.3.1.9","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BIOLUM.VDR9-0","PATH":"METOC/Oceanic/Oceanography/Bioluminescence"},{"SYMBOLID":"WO--BS---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Beach Slope","HIERARCHY":"3.X.2.3.2","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BEHSPE","PATH":"METOC/Oceanic/Oceanography"},{"SYMBOLID":"WO-DBSF-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Flat","HIERARCHY":"3.X.2.3.2.1","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BEHSPE.FLT","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBSG-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Gentle","HIERARCHY":"3.X.2.3.2.2","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BEHSPE.GTL","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBSM-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Moderate","HIERARCHY":"3.X.2.3.2.3","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BEHSPE.MOD","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO-DBST-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Beach Slope Steep","HIERARCHY":"3.X.2.3.2.4","ALPHAHIERARCHY":"METOC.OCA.OCNGRY.BEHSPE.STP","PATH":"METOC/Oceanic/Oceanography/Beach Slope"},{"SYMBOLID":"WO--G----------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Geophysics/Acoustics","HIERARCHY":"3.X.2.4","ALPHAHIERARCHY":"METOC.OCA.GPHY","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO--GM---------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Mine Warefare Bottom Descriptors","HIERARCHY":"3.X.2.4.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD","PATH":"METOC/Oceanic/Geophysics-Acoustics"},{"SYMBOLID":"WO--GMS--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw-Bottom Sediments","HIERARCHY":"3.X.2.4.1.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMSR----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Solid Rock","HIERARCHY":"3.X.2.4.1.1.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.SLDRCK","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSC----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clay","HIERARCHY":"3.X.2.4.1.1.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.CLAY","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSVS--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Course Sand","HIERARCHY":"3.X.2.4.1.1.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.VCSESD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Coarse Sand","HIERARCHY":"3.X.2.4.1.1.4","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.CSESD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSM---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Medium Sand","HIERARCHY":"3.X.2.4.1.1.5","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.MDMSD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Fine Sand","HIERARCHY":"3.X.2.4.1.1.6","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.FNESD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSSVF--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Fine Sand","HIERARCHY":"3.X.2.4.1.1.7","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.VFNESD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIVF--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Very Fine Silt","HIERARCHY":"3.X.2.4.1.1.8","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.VFNSLT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Fine Silt","HIERARCHY":"3.X.2.4.1.1.9","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.FNESLT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIM---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Medium Silt","HIERARCHY":"3.X.2.4.1.1.10","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.MDMSLT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSIC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Coarse Silt","HIERARCHY":"3.X.2.4.1.1.11","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.CSESLT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMSB----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Boulders","HIERARCHY":"3.X.2.4.1.1.12","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.BLDS","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-CO--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Oyster Shells","HIERARCHY":"3.X.2.4.1.1.13","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.COBLOS","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-PH--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Pebbles Shells","HIERARCHY":"3.X.2.4.1.1.14","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.PBLSHE","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMS-SH--A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Sand and Shells","HIERARCHY":"3.X.2.4.1.1.15","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.SD&SHE","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGML-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Sediments Land","HIERARCHY":"3.X.2.4.1.1.16","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.LND","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMN-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Sediments No Data","HIERARCHY":"3.X.2.4.1.1.17","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBS.NODAT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw-Bottom Sediments"},{"SYMBOLID":"WO-DGMR--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Bottom Roughness","HIERARCHY":"3.X.2.4.1.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.BTMRGN","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMRS----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Smooth","HIERARCHY":"3.X.2.4.1.2.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.BTMRGN.SMH","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMRM----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Moderate","HIERARCHY":"3.X.2.4.1.2.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.BTMRGN.MOD","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMRR----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Roughness Rough","HIERARCHY":"3.X.2.4.1.2.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.BTMRGN.RGH","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Bottom Roughness"},{"SYMBOLID":"WO-DGMC--------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Clutter (Bottom)","HIERARCHY":"3.X.2.4.1.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.CTRB","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMCL----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter Low","HIERARCHY":"3.X.2.4.1.3.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.CTRB.LW","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMCM----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter Medium","HIERARCHY":"3.X.2.4.1.3.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.CTRB.MDM","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMCH----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Clutter High","HIERARCHY":"3.X.2.4.1.3.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.CTRB.HGH","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Clutter Low"},{"SYMBOLID":"WO-DGMIB-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Impact Burial","HIERARCHY":"3.X.2.4.1.4","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMIBA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 0","HIERARCHY":"3.X.2.4.1.4.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR.0","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 10","HIERARCHY":"3.X.2.4.1.4.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR.0-10","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 20","HIERARCHY":"3.X.2.4.1.4.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR.10-20","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBD---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 75","HIERARCHY":"3.X.2.4.1.4.4","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR.20-75","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMIBE---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Impact Burial 75-100","HIERARCHY":"3.X.2.4.1.4.5","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.IMTBUR.75-100","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Impact Burial"},{"SYMBOLID":"WO-DGMBC-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw Bottom Category","HIERARCHY":"3.X.2.4.1.5","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBC","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMBCA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category A","HIERARCHY":"3.X.2.4.1.5.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBC.A","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBCB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category B","HIERARCHY":"3.X.2.4.1.5.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBC.B","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBCC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Category C","HIERARCHY":"3.X.2.4.1.5.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBC.C","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Category"},{"SYMBOLID":"WO-DGMBT-------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Miw Bottom Type","HIERARCHY":"3.X.2.4.1.6","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors"},{"SYMBOLID":"WO-DGMBTA---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A1","HIERARCHY":"3.X.2.4.1.6.1","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.A1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTB---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A2","HIERARCHY":"3.X.2.4.1.6.2","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.A2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTC---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type A3","HIERARCHY":"3.X.2.4.1.6.3","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.A3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTD---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B1","HIERARCHY":"3.X.2.4.1.6.4","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.B1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTE---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B2","HIERARCHY":"3.X.2.4.1.6.5","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.B2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTF---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type B3","HIERARCHY":"3.X.2.4.1.6.6","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.B3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTG---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C1","HIERARCHY":"3.X.2.4.1.6.7","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.C1","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTH---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C2","HIERARCHY":"3.X.2.4.1.6.8","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.C2","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO-DGMBTI---A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Bottom Type C3","HIERARCHY":"3.X.2.4.1.6.9","ALPHAHIERARCHY":"METOC.OCA.GPHY.MNEWBD.MIWBT.C3","PATH":"METOC/Oceanic/Geophysics-Acoustics/Mine Warefare Bottom Descriptors/Miw Bottom Type"},{"SYMBOLID":"WO--L----------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Limits","HIERARCHY":"3.X.2.5","ALPHAHIERARCHY":"METOC.OCA.LMT","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO-DL-ML---L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Maritime Limit Boundary","HIERARCHY":"3.X.2.5.1","ALPHAHIERARCHY":"METOC.OCA.LMT.MARTLB","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-MA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Maritime Area","HIERARCHY":"3.X.2.5.2","ALPHAHIERARCHY":"METOC.OCA.LMT.MARTAR","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-RA---L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Restricted Area","HIERARCHY":"3.X.2.5.3","ALPHAHIERARCHY":"METOC.OCA.LMT.RSDARA","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-SA----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Swept Area","HIERARCHY":"3.X.2.5.4","ALPHAHIERARCHY":"METOC.OCA.LMT.SWPARA","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-TA----A--","GEOMETRY":"area","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Training Area","HIERARCHY":"3.X.2.5.5","ALPHAHIERARCHY":"METOC.OCA.LMT.TRGARA","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO-DL-O-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Operator Defined","HIERARCHY":"3.X.2.5.6","ALPHAHIERARCHY":"METOC.OCA.LMT.OD","PATH":"METOC/Oceanic/Limits"},{"SYMBOLID":"WO--M----------","GEOMETRY":"line","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Man-Made Structures","HIERARCHY":"3.X.2.6","ALPHAHIERARCHY":"METOC.OCA.MMD","PATH":"METOC/Oceanic"},{"SYMBOLID":"WO-DMCA----L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Cable","HIERARCHY":"3.X.2.6.1","ALPHAHIERARCHY":"METOC.OCA.MMD.SUBCBL","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMCC-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Submerged Crib","HIERARCHY":"3.X.2.6.2","ALPHAHIERARCHY":"METOC.OCA.MMD.SBMCRB","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMCD----L---","GEOMETRY":"line","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Canal","HIERARCHY":"3.X.2.6.3","ALPHAHIERARCHY":"METOC.OCA.MMD.CNL","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MF----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Ford","HIERARCHY":"3.X.2.6.4","ALPHAHIERARCHY":"METOC.OCA.MMD.FRD","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-ML----P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Lock","HIERARCHY":"3.X.2.6.5","ALPHAHIERARCHY":"METOC.OCA.MMD.LCK","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MOA---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Oil/Gas Rig","HIERARCHY":"3.X.2.6.6","ALPHAHIERARCHY":"METOC.OCA.MMD.OLRG","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMOA-----A--","GEOMETRY":"area","DRAWCATEGORY":"3","MAXPOINTS":"10000","MINPOINTS":"3","DESCRIPTION":"Oil Rig Field","HIERARCHY":"3.X.2.6.7","ALPHAHIERARCHY":"METOC.OCA.MMD.OLRGFD","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WO-DMPA----L---","GEOMETRY":"line","DRAWCATEGORY":"1","MAXPOINTS":"10000","MINPOINTS":"2","DESCRIPTION":"Pipelines/Pipe","HIERARCHY":"3.X.2.6.8","ALPHAHIERARCHY":"METOC.OCA.MMD.PPELNE","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WOS-MPA---P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Pile/Piling/Post","HIERARCHY":"3.X.2.6.9","ALPHAHIERARCHY":"METOC.OCA.MMD.PLE","PATH":"METOC/Oceanic/Man-Made Structures"},{"SYMBOLID":"WS-------------","GEOMETRY":"area","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Space","HIERARCHY":"3.X.3","ALPHAHIERARCHY":"METOC.SPC","PATH":"METOC"},{"SYMBOLID":"E*N*------*****","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Natural Events","HIERARCHY":"6.X.2","ALPHAHIERARCHY":"EMS.NATEVT","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*N*A-----*****","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Geologic","HIERARCHY":"6.X.2.1","ALPHAHIERARCHY":"EMS.NATEVT.GEO","PATH":"Emergency Management Symbols/Natural Events"},{"SYMBOLID":"E*N*AA----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Aftershock","HIERARCHY":"6.X.2.1.1","ALPHAHIERARCHY":"EMS.NATEVT.GEO.AFTSHK","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*AB----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Avalanche","HIERARCHY":"6.X.2.1.2","ALPHAHIERARCHY":"EMS.NATEVT.GEO.AVL","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*AC----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Earthquake Epicenter","HIERARCHY":"6.X.2.1.3","ALPHAHIERARCHY":"EMS.NATEVT.GEO.EQKEPI","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*AD----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Landslide","HIERARCHY":"6.X.2.1.4","ALPHAHIERARCHY":"EMS.NATEVT.GEO.LNDSLD","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*AE----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Subsidence","HIERARCHY":"6.X.2.1.5","ALPHAHIERARCHY":"EMS.NATEVT.GEO.SBSDNC","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"WAS-WSVE--P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Eruption","HIERARCHY":"6.X.2.1.6","ALPHAHIERARCHY":"EMS.NATEVT.GEO.VOLERN","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*AG----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Volcanic Threat","HIERARCHY":"6.X.2.1.7","ALPHAHIERARCHY":"EMS.NATEVT.GEO.VLCTHT","PATH":"Emergency Management Symbols/Natural Events/Geologic"},{"SYMBOLID":"E*N*B-----*****","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Hydro-Meteorological","HIERARCHY":"6.X.2.2","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET","PATH":"Emergency Management Symbols/Natural Events"},{"SYMBOLID":"WAS-WSD-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Drizzle","HIERARCHY":"6.X.2.2.1","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.DZ","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"E*N*BB----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Drought","HIERARCHY":"6.X.2.2.2","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.DRGHT","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"E*N*BC----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Flood","HIERARCHY":"6.X.2.2.3","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.FLOOD","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSFGSOP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Fog","HIERARCHY":"6.X.2.2.4","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.FG","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSGRL-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Hail","HIERARCHY":"6.X.2.2.5","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.HL","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"E*N*BF----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Inversion","HIERARCHY":"6.X.2.2.6","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.INV","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSR-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rain","HIERARCHY":"6.X.2.2.7","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.RA","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSDSLMP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Sand Dust Storm","HIERARCHY":"6.X.2.2.8","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.DT/SD","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSS-LIP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Snow","HIERARCHY":"6.X.2.2.9","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.SN","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSTMH-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Thunder Storm","HIERARCHY":"6.X.2.2.9","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.TSTRM","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WST-FCP----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tornado","HIERARCHY":"6.X.2.2.10","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.TNDO","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"WAS-WSTSS-P----","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tropical Cyclone","HIERARCHY":"6.X.2.2.11","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.TRPCYC","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"E*N*BM----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Tsunami","HIERARCHY":"6.X.2.2.12","ALPHAHIERARCHY":"EMS.NATEVT.HYDMET.TSNMI","PATH":"Emergency Management Symbols/Natural Events/Hydro-Meteorological"},{"SYMBOLID":"E*N*C-----*****","GEOMETRY":"point","DRAWCATEGORY":"0","MAXPOINTS":"0","MINPOINTS":"0","DESCRIPTION":"Infestation","HIERARCHY":"6.X.2.3","ALPHAHIERARCHY":"EMS.NATEVT.INFST","PATH":"Emergency Management Symbols/Natural Events"},{"SYMBOLID":"E*N*CA----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Bird Infestation","HIERARCHY":"6.X.2.3.1","ALPHAHIERARCHY":"EMS.NATEVT.INFST.BIRD","PATH":"Emergency Management Symbols/Natural Events/Infestation"},{"SYMBOLID":"E*N*CB----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Insect Infestation","HIERARCHY":"6.X.2.3.2","ALPHAHIERARCHY":"EMS.NATEVT.INFST.INSCT","PATH":"Emergency Management Symbols/Natural Events/Infestation"},{"SYMBOLID":"E*N*CC----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Microbial Infestation","HIERARCHY":"6.X.2.3.3","ALPHAHIERARCHY":"EMS.NATEVT.INFST.MICROB","PATH":"Emergency Management Symbols/Natural Events/Infestation"},{"SYMBOLID":"E*N*CD----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Reptile Infestation","HIERARCHY":"6.X.2.3.4","ALPHAHIERARCHY":"EMS.NATEVT.INFST.REPT","PATH":"Emergency Management Symbols/Natural Events/Infestation"},{"SYMBOLID":"E*N*CE----*****","GEOMETRY":"point","DRAWCATEGORY":"8","MAXPOINTS":"1","MINPOINTS":"1","DESCRIPTION":"Rodent Infestation","HIERARCHY":"6.X.2.3.5","ALPHAHIERARCHY":"EMS.NATEVT.INFST.RDNT","PATH":"Emergency Management Symbols/Natural Events/Infestation"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.UnitFontMappingsC={"UNITFONTMAPPINGS":{"SYMBOL":[{"SYMBOLID":"S***------*****","DESCRIPTION":"Warfighting Symbology"},{"SYMBOLID":"S*P*------*****","DESCRIPTION":"Space Track"},{"SYMBOLID":"S*P*S-----*****","DESCRIPTION":"Satellite","MAPPING1U":"1000","MAPPING1F":"1000","MAPPING1N":"1000","MAPPING1H":"1000"},{"SYMBOLID":"S*P*V-----*****","DESCRIPTION":"Crewed Space Vehicle","MAPPING1U":"1001","MAPPING1F":"1001","MAPPING1N":"1001","MAPPING1H":"1001"},{"SYMBOLID":"S*P*T-----*****","DESCRIPTION":"Space Station","MAPPING1U":"1002","MAPPING1F":"1002","MAPPING1N":"1002","MAPPING1H":"1002","MAPPING2":"1003","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*P*L-----*****","DESCRIPTION":"Space Launch Vehicle","MAPPING1U":"1004","MAPPING1F":"1004","MAPPING1N":"1004","MAPPING1H":"1004"},{"SYMBOLID":"S*A*------*****","DESCRIPTION":"Air Track"},{"SYMBOLID":"S*A*M-----*****","DESCRIPTION":"Military","MAPPING1U":"1005","MAPPING1F":"1005","MAPPING1N":"1005","MAPPING1H":"1005"},{"SYMBOLID":"S*A*MF----*****","DESCRIPTION":"Fixed Wing","MAPPING1U":"1006","MAPPING1F":"1006","MAPPING1N":"1006","MAPPING1H":"1006"},{"SYMBOLID":"S*A*MFB---*****","DESCRIPTION":"Fixed Wing Bomber","MAPPING1U":"1007","MAPPING1F":"1007","MAPPING1N":"1007","MAPPING1H":"1007"},{"SYMBOLID":"S*A*MFF---*****","DESCRIPTION":"Fixed Wing Fighter","MAPPING1U":"1008","MAPPING1F":"1008","MAPPING1N":"1008","MAPPING1H":"1008"},{"SYMBOLID":"S*A*MFFI--*****","DESCRIPTION":"Fixed Wing Interceptor","MAPPING1U":"1009","MAPPING1F":"1009","MAPPING1N":"1009","MAPPING1H":"1009"},{"SYMBOLID":"S*A*MFT---*****","DESCRIPTION":"Fixed Wing Trainer","MAPPING1U":"1010","MAPPING1F":"1010","MAPPING1N":"1010","MAPPING1H":"1010"},{"SYMBOLID":"S*A*MFA---*****","DESCRIPTION":"Attack/Strike","MAPPING1U":"1011","MAPPING1F":"1011","MAPPING1N":"1011","MAPPING1H":"1011"},{"SYMBOLID":"S*A*MFL---*****","DESCRIPTION":"Fixed Wing VSTOL","MAPPING1U":"1012","MAPPING1F":"1012","MAPPING1N":"1012","MAPPING1H":"1012"},{"SYMBOLID":"S*A*MFK---*****","DESCRIPTION":"Fixed Wing Tanker","MAPPING1U":"1013","MAPPING1F":"1013","MAPPING1N":"1013","MAPPING1H":"1013"},{"SYMBOLID":"S*A*MFKB--*****","DESCRIPTION":"Fixed Wing Tanker Boom-Only","MAPPING1U":"1014","MAPPING1F":"1014","MAPPING1N":"1014","MAPPING1H":"1014"},{"SYMBOLID":"S*A*MFKD--*****","DESCRIPTION":"Fixed Wing Tanker Drouge-Only","MAPPING1U":"1015","MAPPING1F":"1015","MAPPING1N":"1015","MAPPING1H":"1015"},{"SYMBOLID":"S*A*MFC---*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Transport)","MAPPING1U":"1016","MAPPING1F":"1016","MAPPING1N":"1016","MAPPING1H":"1016"},{"SYMBOLID":"S*A*MFCL--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Light)","MAPPING1U":"1017","MAPPING1F":"1017","MAPPING1N":"1017","MAPPING1H":"1017"},{"SYMBOLID":"S*A*MFCM--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Medium)","MAPPING1U":"1018","MAPPING1F":"1018","MAPPING1N":"1018","MAPPING1H":"1018"},{"SYMBOLID":"S*A*MFCH--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Heavy)","MAPPING1U":"1019","MAPPING1F":"1019","MAPPING1N":"1019","MAPPING1H":"1019"},{"SYMBOLID":"S*A*MFJ---*****","DESCRIPTION":"Fixed Wing ECM/Jammer","MAPPING1U":"1020","MAPPING1F":"1020","MAPPING1N":"1020","MAPPING1H":"1020"},{"SYMBOLID":"S*A*MFO---*****","DESCRIPTION":"Fixed Wing MEDEVAC","MAPPING1U":"1021","MAPPING1F":"1021","MAPPING1N":"1021","MAPPING1H":"1021"},{"SYMBOLID":"S*A*MFR---*****","DESCRIPTION":"Fixed Wing Reconnaissance","MAPPING1U":"1022","MAPPING1F":"1022","MAPPING1N":"1022","MAPPING1H":"1022"},{"SYMBOLID":"S*A*MFRW--*****","DESCRIPTION":"Fixed Wing Airborne Early Warning (AEW)","MAPPING1U":"1023","MAPPING1F":"1023","MAPPING1N":"1023","MAPPING1H":"1023"},{"SYMBOLID":"S*A*MFRZ--*****","DESCRIPTION":"Fixed Wing Electronic Surveillance Measures","MAPPING1U":"1024","MAPPING1F":"1024","MAPPING1N":"1024","MAPPING1H":"1024"},{"SYMBOLID":"S*A*MFRX--*****","DESCRIPTION":"Fixed Wing Photographic","MAPPING1U":"1025","MAPPING1F":"1025","MAPPING1N":"1025","MAPPING1H":"1025"},{"SYMBOLID":"S*A*MFP---*****","DESCRIPTION":"Fixed Wing Patrol","MAPPING1U":"1026","MAPPING1F":"1026","MAPPING1N":"1026","MAPPING1H":"1026"},{"SYMBOLID":"S*A*MFPN--*****","DESCRIPTION":"Patrol Antisurface Warfare (ASUW)","MAPPING1U":"1027","MAPPING1F":"1027","MAPPING1N":"1027","MAPPING1H":"1027"},{"SYMBOLID":"S*A*MFPM--*****","DESCRIPTION":"Fixed Wing Mine Countermeasures","MAPPING1U":"1028","MAPPING1F":"1028","MAPPING1N":"1028","MAPPING1H":"1028"},{"SYMBOLID":"S*A*MFU---*****","DESCRIPTION":"Fixed Wing Utility","MAPPING1U":"1029","MAPPING1F":"1029","MAPPING1N":"1029","MAPPING1H":"1029"},{"SYMBOLID":"S*A*MFUL--*****","DESCRIPTION":"Fixed Wing Utility (Light)","MAPPING1U":"1030","MAPPING1F":"1030","MAPPING1N":"1030","MAPPING1H":"1030"},{"SYMBOLID":"S*A*MFUM--*****","DESCRIPTION":"Fixed Wing Utility (Medium)","MAPPING1U":"1031","MAPPING1F":"1031","MAPPING1N":"1031","MAPPING1H":"1031"},{"SYMBOLID":"S*A*MFUH--*****","DESCRIPTION":"Fixed Wing Utility (Heavy)","MAPPING1U":"1032","MAPPING1F":"1032","MAPPING1N":"1032","MAPPING1H":"1032"},{"SYMBOLID":"S*A*MFY---*****","DESCRIPTION":"Fixed Wing Communications (C3I)","MAPPING1U":"1033","MAPPING1F":"1033","MAPPING1N":"1033","MAPPING1H":"1033"},{"SYMBOLID":"S*A*MFH---*****","DESCRIPTION":"Fixed Wing Combat Search and Rescue (CSAR)","MAPPING1U":"1034","MAPPING1F":"1034","MAPPING1N":"1034","MAPPING1H":"1034"},{"SYMBOLID":"S*A*MFD---*****","DESCRIPTION":"Fixed Wing Airborne Command Post (C2)","MAPPING1U":"1035","MAPPING1F":"1035","MAPPING1N":"1035","MAPPING1H":"1035"},{"SYMBOLID":"S*A*MFQ---*****","DESCRIPTION":"Drone (RPV/UAV) Fixed Wing","MAPPING1U":"1036","MAPPING1F":"1036","MAPPING1N":"1036","MAPPING1H":"1036"},{"SYMBOLID":"S*A*MFQA--*****","DESCRIPTION":"Drone Attack","MAPPING1U":"1037","MAPPING1F":"1037","MAPPING1N":"1037","MAPPING1H":"1037"},{"SYMBOLID":"S*A*MFQB--*****","DESCRIPTION":"Drone Bomber","MAPPING1U":"1038","MAPPING1F":"1038","MAPPING1N":"1038","MAPPING1H":"1038"},{"SYMBOLID":"S*A*MFQC--*****","DESCRIPTION":"Drone Cargo","MAPPING1U":"1039","MAPPING1F":"1039","MAPPING1N":"1039","MAPPING1H":"1039"},{"SYMBOLID":"S*A*MFQD--*****","DESCRIPTION":"Drone (RPV/UAV) Airborne Command Post","MAPPING1U":"1040","MAPPING1F":"1040","MAPPING1N":"1040","MAPPING1H":"1040"},{"SYMBOLID":"S*A*MFQF--*****","DESCRIPTION":"Drone Fighter","MAPPING1U":"1041","MAPPING1F":"1041","MAPPING1N":"1041","MAPPING1H":"1041"},{"SYMBOLID":"S*A*MFQH--*****","DESCRIPTION":"Search & Rescue (CSAR)","MAPPING1U":"1042","MAPPING1F":"1042","MAPPING1N":"1042","MAPPING1H":"1042"},{"SYMBOLID":"S*A*MFQJ--*****","DESCRIPTION":"Drone Electronic Countermeasures (Jammer)","MAPPING1U":"1043","MAPPING1F":"1043","MAPPING1N":"1043","MAPPING1H":"1043"},{"SYMBOLID":"S*A*MFQK--*****","DESCRIPTION":"Drone Tanker","MAPPING1U":"1044","MAPPING1F":"1044","MAPPING1N":"1044","MAPPING1H":"1044"},{"SYMBOLID":"S*A*MFQL--*****","DESCRIPTION":"Drone Vstol","MAPPING1U":"1045","MAPPING1F":"1045","MAPPING1N":"1045","MAPPING1H":"1045"},{"SYMBOLID":"S*A*MFQM--*****","DESCRIPTION":"Drone Special Operations Forces (SOF)","MAPPING1U":"1046","MAPPING1F":"1046","MAPPING1N":"1046","MAPPING1H":"1046"},{"SYMBOLID":"S*A*MFQI--*****","DESCRIPTION":"Drone Mine Countermeasures","MAPPING1U":"1047","MAPPING1F":"1047","MAPPING1N":"1047","MAPPING1H":"1047"},{"SYMBOLID":"S*A*MFQN--*****","DESCRIPTION":"Drone Anti-Surface Warfare (ASUW)","MAPPING1U":"1048","MAPPING1F":"1048","MAPPING1N":"1048","MAPPING1H":"1048"},{"SYMBOLID":"S*A*MFQP--*****","DESCRIPTION":"Drone Patrol","MAPPING1U":"1049","MAPPING1F":"1049","MAPPING1N":"1049","MAPPING1H":"1049"},{"SYMBOLID":"S*A*MFQR--*****","DESCRIPTION":"Drone Reconnaissance","MAPPING1U":"1050","MAPPING1F":"1050","MAPPING1N":"1050","MAPPING1H":"1050"},{"SYMBOLID":"S*A*MFQRW-*****","DESCRIPTION":"Drone Airborne Early Warning (AEW)","MAPPING1U":"1051","MAPPING1F":"1051","MAPPING1N":"1051","MAPPING1H":"1051"},{"SYMBOLID":"S*A*MFQRZ-*****","DESCRIPTION":"Drone Electronic Surveillance Measures","MAPPING1U":"1052","MAPPING1F":"1052","MAPPING1N":"1052","MAPPING1H":"1052"},{"SYMBOLID":"S*A*MFQRX-*****","DESCRIPTION":"Drone Photographic","MAPPING1U":"1053","MAPPING1F":"1053","MAPPING1N":"1053","MAPPING1H":"1053"},{"SYMBOLID":"S*A*MFQS--*****","DESCRIPTION":"Drone Anti-Submarine Warfare (ASW)","MAPPING1U":"1054","MAPPING1F":"1054","MAPPING1N":"1054","MAPPING1H":"1054"},{"SYMBOLID":"S*A*MFQT--*****","DESCRIPTION":"Drone Trainer","MAPPING1U":"1055","MAPPING1F":"1055","MAPPING1N":"1055","MAPPING1H":"1055"},{"SYMBOLID":"S*A*MFQU--*****","DESCRIPTION":"Drone Utility Fixed Wing","MAPPING1U":"1056","MAPPING1F":"1056","MAPPING1N":"1056","MAPPING1H":"1056"},{"SYMBOLID":"S*A*MFQY--*****","DESCRIPTION":"Drone Communications (C3I)","MAPPING1U":"1057","MAPPING1F":"1057","MAPPING1N":"1057","MAPPING1H":"1057"},{"SYMBOLID":"S*A*MFQO--*****","DESCRIPTION":"Drone Medevac","MAPPING1U":"1058","MAPPING1F":"1058","MAPPING1N":"1058","MAPPING1H":"1058"},{"SYMBOLID":"S*A*MFS---*****","DESCRIPTION":"Antisubmarine Warfare (ASW) Carrier Based","MAPPING1U":"1059","MAPPING1F":"1059","MAPPING1N":"1059","MAPPING1H":"1059"},{"SYMBOLID":"S*A*MFM---*****","DESCRIPTION":"Fixed Wing Special Operations Forces (SOF)","MAPPING1U":"1060","MAPPING1F":"1060","MAPPING1N":"1060","MAPPING1H":"1060"},{"SYMBOLID":"S*A*MH----*****","DESCRIPTION":"Rotary Wing","MAPPING1U":"1061","MAPPING1F":"1061","MAPPING1N":"1061","MAPPING1H":"1061"},{"SYMBOLID":"S*A*MHA---*****","DESCRIPTION":"Rotary Wing Attack","MAPPING1U":"1062","MAPPING1F":"1062","MAPPING1N":"1062","MAPPING1H":"1062"},{"SYMBOLID":"S*A*MHS---*****","DESCRIPTION":"Antisubmarine Warfare/MPA ROTARY WING","MAPPING1U":"1063","MAPPING1F":"1063","MAPPING1N":"1063","MAPPING1H":"1063"},{"SYMBOLID":"S*A*MHU---*****","DESCRIPTION":"Rotary Wing Utility","MAPPING1U":"1064","MAPPING1F":"1064","MAPPING1N":"1064","MAPPING1H":"1064"},{"SYMBOLID":"S*A*MHUL--*****","DESCRIPTION":"Rotary Wing Utility (Light)","MAPPING1U":"1065","MAPPING1F":"1065","MAPPING1N":"1065","MAPPING1H":"1065"},{"SYMBOLID":"S*A*MHUM--*****","DESCRIPTION":"Rotary Wing Utility (Medium)","MAPPING1U":"1066","MAPPING1F":"1066","MAPPING1N":"1066","MAPPING1H":"1066"},{"SYMBOLID":"S*A*MHUH--*****","DESCRIPTION":"Rotary Wing Utility (Heavy)","MAPPING1U":"1067","MAPPING1F":"1067","MAPPING1N":"1067","MAPPING1H":"1067"},{"SYMBOLID":"S*A*MHI---*****","DESCRIPTION":"Rotary Wing Mine Countermeasures","MAPPING1U":"1068","MAPPING1F":"1068","MAPPING1N":"1068","MAPPING1H":"1068"},{"SYMBOLID":"S*A*MHH---*****","DESCRIPTION":"Rotary Wing Combat Search and Rescue(Military)","MAPPING1U":"1069","MAPPING1F":"1069","MAPPING1N":"1069","MAPPING1H":"1069"},{"SYMBOLID":"S*A*MHR---*****","DESCRIPTION":"Rotary Wing Reconnaissance","MAPPING1U":"1070","MAPPING1F":"1070","MAPPING1N":"1070","MAPPING1H":"1070"},{"SYMBOLID":"S*A*MHQ---*****","DESCRIPTION":"Drone (RPV/UAV) Rotary Wing","MAPPING1U":"1071","MAPPING1F":"1071","MAPPING1N":"1071","MAPPING1H":"1071"},{"SYMBOLID":"S*A*MHC---*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Transport)","MAPPING1U":"1072","MAPPING1F":"1072","MAPPING1N":"1072","MAPPING1H":"1072"},{"SYMBOLID":"S*A*MHCL--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Light)","MAPPING1U":"1073","MAPPING1F":"1073","MAPPING1N":"1073","MAPPING1H":"1073"},{"SYMBOLID":"S*A*MHCM--*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Medium)","MAPPING1U":"1074","MAPPING1F":"1074","MAPPING1N":"1074","MAPPING1H":"1074"},{"SYMBOLID":"S*A*MHCH--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Heavy)","MAPPING1U":"1075","MAPPING1F":"1075","MAPPING1N":"1075","MAPPING1H":"1075"},{"SYMBOLID":"S*A*MHT---*****","DESCRIPTION":"Rotary Wing Trainer","MAPPING1U":"1076","MAPPING1F":"1076","MAPPING1N":"1076","MAPPING1H":"1076"},{"SYMBOLID":"S*A*MHO---*****","DESCRIPTION":"Rotary Wing MEDEVAC","MAPPING1U":"1077","MAPPING1F":"1077","MAPPING1N":"1077","MAPPING1H":"1077"},{"SYMBOLID":"S*A*MHM---*****","DESCRIPTION":"Rotary Wing Special Operations Forces","MAPPING1U":"1078","MAPPING1F":"1078","MAPPING1N":"1078","MAPPING1H":"1078"},{"SYMBOLID":"S*A*MHD---*****","DESCRIPTION":"Rotary Wing Airborne Command Post","MAPPING1U":"1079","MAPPING1F":"1079","MAPPING1N":"1079","MAPPING1H":"1079"},{"SYMBOLID":"S*A*MHK---*****","DESCRIPTION":"Rotary Wing Tanker","MAPPING1U":"1080","MAPPING1F":"1080","MAPPING1N":"1080","MAPPING1H":"1080"},{"SYMBOLID":"S*A*MHJ---*****","DESCRIPTION":"Rotary Wing ECM/Jammer(TANKER)","MAPPING1U":"1081","MAPPING1F":"1081","MAPPING1N":"1081","MAPPING1H":"1081"},{"SYMBOLID":"S*A*ML----*****","DESCRIPTION":"Military Aircraft Lighter Than Air","MAPPING1U":"1082","MAPPING1F":"1082","MAPPING1N":"1082","MAPPING1H":"1082"},{"SYMBOLID":"S*A*MV----*****","DESCRIPTION":"VIP","MAPPING1U":"2167","MAPPING1F":"2167","MAPPING1N":"2167","MAPPING1H":"2167"},{"SYMBOLID":"S*A*ME----*****","DESCRIPTION":"Escort","MAPPING1U":"2168","MAPPING1F":"2168","MAPPING1N":"2168","MAPPING1H":"2168"},{"SYMBOLID":"S*A*W-----*****","DESCRIPTION":"Air Track Weapon","MAPPING1U":"1083","MAPPING1F":"1083","MAPPING1N":"1083","MAPPING1H":"1083","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WM----*****","DESCRIPTION":"Missile In Flight","MAPPING1U":"1083","MAPPING1F":"1083","MAPPING1N":"1083","MAPPING1H":"1083","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMS---*****","DESCRIPTION":"Surface Launched Missile","MAPPING1U":"1085","MAPPING1F":"1085","MAPPING1N":"1085","MAPPING1H":"1085","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSS--*****","DESCRIPTION":"Surface to Surface Missile (SSM)","MAPPING1U":"1086","MAPPING1F":"1086","MAPPING1N":"1086","MAPPING1H":"1086","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSA--*****","DESCRIPTION":"Surface To Air Missile (SAM)","MAPPING1U":"1087","MAPPING1F":"1087","MAPPING1N":"1087","MAPPING1H":"1087","MAPPING2":"1084","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSU--*****","DESCRIPTION":"Surface to Subsurface Missile","MAPPING1U":"1088","MAPPING1F":"1088","MAPPING1N":"1088","MAPPING1H":"1088","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMSB--*****","DESCRIPTION":"Anti-Ballistic Missile (ABM)","MAPPING1U":"1089","MAPPING1F":"1089","MAPPING1N":"1089","MAPPING1H":"1089","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMA---*****","DESCRIPTION":"Air Launched Missile","MAPPING1U":"1090","MAPPING1F":"1090","MAPPING1N":"1090","MAPPING1H":"1090","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAS--*****","DESCRIPTION":"Air To Surface Missile (ASM)","MAPPING1U":"1091","MAPPING1F":"1091","MAPPING1N":"1091","MAPPING1H":"1091","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAA--*****","DESCRIPTION":"Air To Air Missile (AAM)","MAPPING1U":"1093","MAPPING1F":"1093","MAPPING1N":"1093","MAPPING1H":"1093","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMAP--*****","DESCRIPTION":"Air to Space Missile","MAPPING1U":"1094","MAPPING1F":"1094","MAPPING1N":"1094","MAPPING1H":"1094","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMU---*****","DESCRIPTION":"Subsurface To Surface Missile (S/SSM)","MAPPING1U":"1095","MAPPING1F":"1095","MAPPING1N":"1095","MAPPING1H":"1095","MAPPING2":"401","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMCM--*****","DESCRIPTION":"Cruise Missile","MAPPING1U":"1096","MAPPING1F":"1096","MAPPING1N":"1096","MAPPING1H":"1096","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WMB---*****","DESCRIPTION":"Ballistic Missile","MAPPING1U":"1097","MAPPING1F":"1097","MAPPING1N":"1097","MAPPING1H":"1097","MAPPING2":"400","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"S*A*WD----*****","DESCRIPTION":"Decoy","MAPPING1U":"1099","MAPPING1F":"1099","MAPPING1N":"1099","MAPPING1H":"1099"},{"SYMBOLID":"S*A*WB----*****","DESCRIPTION":"Bomb","MAPPING1U":"1098","MAPPING1F":"1098","MAPPING1N":"1098","MAPPING1H":"1098"},{"SYMBOLID":"S*A*C-----*****","DESCRIPTION":"Civil Aircraft","MAPPING1U":"1100","MAPPING1F":"1100","MAPPING1N":"1100","MAPPING1H":"1100"},{"SYMBOLID":"S*A*CF----*****","DESCRIPTION":"Civil Fixed Wing","MAPPING1U":"1101","MAPPING1F":"1101","MAPPING1N":"1101","MAPPING1H":"1101","MAPPING2":"402","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*A*CH----*****","DESCRIPTION":"Civil Rotary Wing","MAPPING1U":"1102","MAPPING1F":"1102","MAPPING1N":"1102","MAPPING1H":"1102","MAPPING2":"403","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*A*CL----*****","DESCRIPTION":"Civil Aircraft Lighter Than Air","MAPPING1U":"1103","MAPPING1F":"1103","MAPPING1N":"1103","MAPPING1H":"1103","MAPPING2":"404","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*------*****","DESCRIPTION":"Ground Track"},{"SYMBOLID":"S*G*U-----*****","DESCRIPTION":"Unit"},{"SYMBOLID":"S*G*UC----*****","DESCRIPTION":"Combat","MAPPING1U":"1104","MAPPING1F":"1104","MAPPING1N":"1104","MAPPING1H":"1104"},{"SYMBOLID":"S*G*UCD---*****","DESCRIPTION":"Air Defense","MAPPING1U":"1105","MAPPING1F":"1106","MAPPING1N":"1107","MAPPING1H":"1108"},{"SYMBOLID":"S*G*UCDS--*****","DESCRIPTION":"Short Range","MAPPING1U":"1109","MAPPING1F":"1110","MAPPING1N":"1111","MAPPING1H":"1112"},{"SYMBOLID":"S*G*UCDSC-*****","DESCRIPTION":"Chaparral","MAPPING1U":"1113","MAPPING1F":"1114","MAPPING1N":"1115","MAPPING1H":"1116"},{"SYMBOLID":"S*G*UCDSS-*****","DESCRIPTION":"Stinger","MAPPING1U":"1117","MAPPING1F":"1118","MAPPING1N":"1119","MAPPING1H":"1120"},{"SYMBOLID":"S*G*UCDSV-*****","DESCRIPTION":"Vulcan","MAPPING1U":"1121","MAPPING1F":"1122","MAPPING1N":"1123","MAPPING1H":"1124"},{"SYMBOLID":"S*G*UCDM--*****","DESCRIPTION":"Air Defense Missile","MAPPING1U":"1125","MAPPING1F":"1126","MAPPING1N":"1127","MAPPING1H":"1128"},{"SYMBOLID":"S*G*UCDML-*****","DESCRIPTION":"Air Defense Missile Light","MAPPING1U":"1129","MAPPING1F":"1130","MAPPING1N":"1131","MAPPING1H":"1132"},{"SYMBOLID":"S*G*UCDMLA*****","DESCRIPTION":"Air Defense Missile Motorized (Avenger)","MAPPING1U":"1133","MAPPING1F":"1134","MAPPING1N":"1135","MAPPING1H":"1136"},{"SYMBOLID":"S*G*UCDMM-*****","DESCRIPTION":"Air Defense Missile Medium","MAPPING1U":"1137","MAPPING1F":"1138","MAPPING1N":"1139","MAPPING1H":"1140"},{"SYMBOLID":"S*G*UCDMH-*****","DESCRIPTION":"Air Defense Missile Heavy","MAPPING1U":"1141","MAPPING1F":"1142","MAPPING1N":"1143","MAPPING1H":"1144"},{"SYMBOLID":"S*G*UCDH--*****","DESCRIPTION":"H/MAD","MAPPING1U":"1145","MAPPING1F":"1146","MAPPING1N":"1147","MAPPING1H":"1148"},{"SYMBOLID":"S*G*UCDHH-*****","DESCRIPTION":"Hawk","MAPPING1U":"1149","MAPPING1F":"1150","MAPPING1N":"1151","MAPPING1H":"1152"},{"SYMBOLID":"S*G*UCDHP-*****","DESCRIPTION":"Patriot","MAPPING1U":"1153","MAPPING1F":"1154","MAPPING1N":"1155","MAPPING1H":"1156"},{"SYMBOLID":"S*G*UCDG--*****","DESCRIPTION":"Gun Unit","MAPPING1U":"1157","MAPPING1F":"1158","MAPPING1N":"1159","MAPPING1H":"1160"},{"SYMBOLID":"S*G*UCDC--*****","DESCRIPTION":"Air Defense Composite","MAPPING1U":"1161","MAPPING1F":"1162","MAPPING1N":"1163","MAPPING1H":"1164"},{"SYMBOLID":"S*G*UCDT--*****","DESCRIPTION":"Targeting Unit","MAPPING1U":"1165","MAPPING1F":"1166","MAPPING1N":"1167","MAPPING1H":"1168"},{"SYMBOLID":"S*G*UCDO--*****","DESCRIPTION":"Theater Missile Defense Unit","MAPPING1U":"1169","MAPPING1F":"1170","MAPPING1N":"1171","MAPPING1H":"1172"},{"SYMBOLID":"S*G*UCA---*****","DESCRIPTION":"Armor","MAPPING1U":"1173","MAPPING1F":"1173","MAPPING1N":"1173","MAPPING1H":"1173"},{"SYMBOLID":"S*G*UCAT--*****","DESCRIPTION":"Armor Track","MAPPING1U":"1173","MAPPING1F":"1173","MAPPING1N":"1173","MAPPING1H":"1173"},{"SYMBOLID":"S*G*UCATA-*****","DESCRIPTION":"Armor Track Airborne","MAPPING1U":"1174","MAPPING1F":"1174","MAPPING1N":"1174","MAPPING1H":"1174"},{"SYMBOLID":"S*G*UCATW-*****","DESCRIPTION":"Armor Track Amphibious","MAPPING1U":"1175","MAPPING1F":"1176","MAPPING1N":"1177","MAPPING1H":"1178"},{"SYMBOLID":"S*G*UCATWR*****","DESCRIPTION":"Armor Track Amphibious Recovery","MAPPING1U":"1179","MAPPING1F":"1180","MAPPING1N":"1181","MAPPING1H":"1182"},{"SYMBOLID":"S*G*UCATL-*****","DESCRIPTION":"Armor Track, Light","MAPPING1U":"1183","MAPPING1F":"1183","MAPPING1N":"1183","MAPPING1H":"1183"},{"SYMBOLID":"S*G*UCATM-*****","DESCRIPTION":"Armor Track, Medium","MAPPING1U":"1184","MAPPING1F":"1184","MAPPING1N":"1184","MAPPING1H":"1184"},{"SYMBOLID":"S*G*UCATH-*****","DESCRIPTION":"Armor Track, Heavy","MAPPING1U":"1185","MAPPING1F":"1185","MAPPING1N":"1185","MAPPING1H":"1185"},{"SYMBOLID":"S*G*UCATR-*****","DESCRIPTION":"Armor Track, Recovery","MAPPING1U":"1186","MAPPING1F":"1186","MAPPING1N":"1186","MAPPING1H":"1186"},{"SYMBOLID":"S*G*UCAW--*****","DESCRIPTION":"Armor, Wheeled","MAPPING1U":"1187","MAPPING1F":"1187","MAPPING1N":"1187","MAPPING1H":"1187"},{"SYMBOLID":"S*G*UCAWS-*****","DESCRIPTION":"Armor, Wheeled Air Assault","MAPPING1U":"1188","MAPPING1F":"1188","MAPPING1N":"1188","MAPPING1H":"1188"},{"SYMBOLID":"S*G*UCAWA-*****","DESCRIPTION":"Armor, Wheeled Airborne","MAPPING1U":"1189","MAPPING1F":"1189","MAPPING1N":"1189","MAPPING1H":"1189"},{"SYMBOLID":"S*G*UCAWW-*****","DESCRIPTION":"Armor, Wheeled Amphibious","MAPPING1U":"1190","MAPPING1F":"1191","MAPPING1N":"1192","MAPPING1H":"1193"},{"SYMBOLID":"S*G*UCAWWR*****","DESCRIPTION":"Armor, Wheeled Amphibious Recovery","MAPPING1U":"1194","MAPPING1F":"1195","MAPPING1N":"1196","MAPPING1H":"1197"},{"SYMBOLID":"S*G*UCAWL-*****","DESCRIPTION":"Armor, Wheeled Light","MAPPING1U":"1198","MAPPING1F":"1198","MAPPING1N":"1198","MAPPING1H":"1198"},{"SYMBOLID":"S*G*UCAWM-*****","DESCRIPTION":"Armor, Wheeled Medium","MAPPING1U":"1199","MAPPING1F":"1199","MAPPING1N":"1199","MAPPING1H":"1199"},{"SYMBOLID":"S*G*UCAWH-*****","DESCRIPTION":"Armor, Wheeled Heavy","MAPPING1U":"1200","MAPPING1F":"1200","MAPPING1N":"1200","MAPPING1H":"1200"},{"SYMBOLID":"S*G*UCAWR-*****","DESCRIPTION":"Armor, Wheeled Recovery","MAPPING1U":"1201","MAPPING1F":"1201","MAPPING1N":"1201","MAPPING1H":"1201"},{"SYMBOLID":"S*G*UCAA--*****","DESCRIPTION":"Anti Armor","MAPPING1U":"1202","MAPPING1F":"1203","MAPPING1N":"1204","MAPPING1H":"1205"},{"SYMBOLID":"S*G*UCAAD-*****","DESCRIPTION":"Anti Armor Dismounted","MAPPING1U":"1202","MAPPING1F":"1203","MAPPING1N":"1204","MAPPING1H":"1205"},{"SYMBOLID":"S*G*UCAAL-*****","DESCRIPTION":"Anti Armor Light","MAPPING1U":"1206","MAPPING1F":"1207","MAPPING1N":"1208","MAPPING1H":"1209"},{"SYMBOLID":"S*G*UCAAM-*****","DESCRIPTION":"Anti Armor Airborne","MAPPING1U":"1210","MAPPING1F":"1211","MAPPING1N":"1212","MAPPING1H":"1213"},{"SYMBOLID":"S*G*UCAAS-*****","DESCRIPTION":"Anti Armor Air Assault","MAPPING1U":"1214","MAPPING1F":"1215","MAPPING1N":"1216","MAPPING1H":"1217"},{"SYMBOLID":"S*G*UCAAU-*****","DESCRIPTION":"Anti Armor Mountain","MAPPING1U":"1218","MAPPING1F":"1219","MAPPING1N":"1220","MAPPING1H":"1221"},{"SYMBOLID":"S*G*UCAAC-*****","DESCRIPTION":"Anti Armor Arctic","MAPPING1U":"1222","MAPPING1F":"1223","MAPPING1N":"1224","MAPPING1H":"1225"},{"SYMBOLID":"S*G*UCAAA-*****","DESCRIPTION":"Anti Armor Armored","MAPPING1U":"1226","MAPPING1F":"1227","MAPPING1N":"1228","MAPPING1H":"1229"},{"SYMBOLID":"S*G*UCAAAT*****","DESCRIPTION":"Anti Armor Armored Tracked","MAPPING1U":"1226","MAPPING1F":"1227","MAPPING1N":"1228","MAPPING1H":"1229"},{"SYMBOLID":"S*G*UCAAAW*****","DESCRIPTION":"Anti Armor Armored Wheeled","MAPPING1U":"1230","MAPPING1F":"1231","MAPPING1N":"1232","MAPPING1H":"1233"},{"SYMBOLID":"S*G*UCAAAS*****","DESCRIPTION":"Anti Armor Armored Air Assault","MAPPING1U":"1234","MAPPING1F":"1235","MAPPING1N":"1236","MAPPING1H":"1237"},{"SYMBOLID":"S*G*UCAAO-*****","DESCRIPTION":"Anti Armor Motorized","MAPPING1U":"1238","MAPPING1F":"1239","MAPPING1N":"1240","MAPPING1H":"1241"},{"SYMBOLID":"S*G*UCAAOS*****","DESCRIPTION":"Anti Armor Motorized Air Assault","MAPPING1U":"1242","MAPPING1F":"1243","MAPPING1N":"1244","MAPPING1H":"1245"},{"SYMBOLID":"S*G*UCV---*****","DESCRIPTION":"Aviation","MAPPING1U":"1246","MAPPING1F":"1246","MAPPING1N":"1246","MAPPING1H":"1246"},{"SYMBOLID":"S*G*UCVF--*****","DESCRIPTION":"Aviation Fixed Wing","MAPPING1U":"1247","MAPPING1F":"1247","MAPPING1N":"1247","MAPPING1H":"1247"},{"SYMBOLID":"S*G*UCVFU-*****","DESCRIPTION":"Utility Fixed Wing","MAPPING1U":"1248","MAPPING1F":"1248","MAPPING1N":"1248","MAPPING1H":"1248"},{"SYMBOLID":"S*G*UCVFA-*****","DESCRIPTION":"Fixed Wing Attack","MAPPING1U":"1249","MAPPING1F":"1249","MAPPING1N":"1249","MAPPING1H":"1249"},{"SYMBOLID":"S*G*UCVFR-*****","DESCRIPTION":"Recon Fixed Wing","MAPPING1U":"1250","MAPPING1F":"1250","MAPPING1N":"1250","MAPPING1H":"1250"},{"SYMBOLID":"S*G*UCVR--*****","DESCRIPTION":"Aviation Rotary Wing","MAPPING1U":"1251","MAPPING1F":"1251","MAPPING1N":"1251","MAPPING1H":"1251"},{"SYMBOLID":"S*G*UCVRA-*****","DESCRIPTION":"Attack Rotary Wing","MAPPING1U":"1252","MAPPING1F":"1252","MAPPING1N":"1252","MAPPING1H":"1252"},{"SYMBOLID":"S*G*UCVRS-*****","DESCRIPTION":"Scout Rotary Wing","MAPPING1U":"1253","MAPPING1F":"1253","MAPPING1N":"1253","MAPPING1H":"1253"},{"SYMBOLID":"S*G*UCVRW-*****","DESCRIPTION":"Antisubmarine Warfare Rotary Wing","MAPPING1U":"1254","MAPPING1F":"1254","MAPPING1N":"1254","MAPPING1H":"1254"},{"SYMBOLID":"S*G*UCVRU-*****","DESCRIPTION":"Utility Rotary Wing","MAPPING1U":"1255","MAPPING1F":"1255","MAPPING1N":"1255","MAPPING1H":"1255"},{"SYMBOLID":"S*G*UCVRUL*****","DESCRIPTION":"Light Utility Rotary Wing","MAPPING1U":"1256","MAPPING1F":"1256","MAPPING1N":"1256","MAPPING1H":"1256"},{"SYMBOLID":"S*G*UCVRUM*****","DESCRIPTION":"Medium Utility Rotary Wing","MAPPING1U":"1257","MAPPING1F":"1257","MAPPING1N":"1257","MAPPING1H":"1257"},{"SYMBOLID":"S*G*UCVRUH*****","DESCRIPTION":"Heavy Utility Rotary Wing","MAPPING1U":"1258","MAPPING1F":"1258","MAPPING1N":"1258","MAPPING1H":"1258"},{"SYMBOLID":"S*G*UCVRUC*****","DESCRIPTION":"C2 Rotary Wing","MAPPING1U":"1259","MAPPING1F":"1259","MAPPING1N":"1259","MAPPING1H":"1259"},{"SYMBOLID":"S*G*UCVRUE*****","DESCRIPTION":"Medevac Rotary Wing","MAPPING1U":"1260","MAPPING1F":"1260","MAPPING1N":"1260","MAPPING1H":"1260"},{"SYMBOLID":"S*G*UCVRM-*****","DESCRIPTION":"Mine Countermeasure Rotary Wing","MAPPING1U":"1261","MAPPING1F":"1261","MAPPING1N":"1261","MAPPING1H":"1261"},{"SYMBOLID":"S*G*UCVS--*****","DESCRIPTION":"Search and Rescue","MAPPING1U":"1262","MAPPING1F":"1262","MAPPING1N":"1262","MAPPING1H":"1262"},{"SYMBOLID":"S*G*UCVC--*****","DESCRIPTION":"Aviation Composite","MAPPING1U":"1263","MAPPING1F":"1263","MAPPING1N":"1263","MAPPING1H":"1263"},{"SYMBOLID":"S*G*UCVV--*****","DESCRIPTION":"Vertical/Short Takeoff And Landing (V/Stol)","MAPPING1U":"1264","MAPPING1F":"1264","MAPPING1N":"1264","MAPPING1H":"1264"},{"SYMBOLID":"S*G*UCVU--*****","DESCRIPTION":"Unmanned Aerial Vehicle","MAPPING1U":"1265","MAPPING1F":"1265","MAPPING1N":"1265","MAPPING1H":"1265"},{"SYMBOLID":"S*G*UCVUF-*****","DESCRIPTION":"Unmanned Aerial Vehicle Fixed Wing","MAPPING1U":"1266","MAPPING1F":"1266","MAPPING1N":"1266","MAPPING1H":"1266"},{"SYMBOLID":"S*G*UCVUR-*****","DESCRIPTION":"Unmanned Aerial Vehicle Rotary Wing","MAPPING1U":"1267","MAPPING1F":"1267","MAPPING1N":"1267","MAPPING1H":"1267"},{"SYMBOLID":"S*G*UCI---*****","DESCRIPTION":"Infantry","MAPPING1U":"1268","MAPPING1F":"1269","MAPPING1N":"1270","MAPPING1H":"1271"},{"SYMBOLID":"S*G*UCIL--*****","DESCRIPTION":"Infantry Light","MAPPING1U":"1272","MAPPING1F":"1273","MAPPING1N":"1274","MAPPING1H":"1275"},{"SYMBOLID":"S*G*UCIM--*****","DESCRIPTION":"Infantry Motorized","MAPPING1U":"1276","MAPPING1F":"1277","MAPPING1N":"1278","MAPPING1H":"1279"},{"SYMBOLID":"S*G*UCIO--*****","DESCRIPTION":"Infantry Mountain","MAPPING1U":"1280","MAPPING1F":"1281","MAPPING1N":"1282","MAPPING1H":"1283"},{"SYMBOLID":"S*G*UCIA--*****","DESCRIPTION":"Infantry Airborne","MAPPING1U":"1284","MAPPING1F":"1285","MAPPING1N":"1286","MAPPING1H":"1287"},{"SYMBOLID":"S*G*UCIS--*****","DESCRIPTION":"Infantry Air Assault","MAPPING1U":"1288","MAPPING1F":"1289","MAPPING1N":"1290","MAPPING1H":"1291"},{"SYMBOLID":"S*G*UCIZ--*****","DESCRIPTION":"Infantry Mechanized","MAPPING1U":"1292","MAPPING1F":"1293","MAPPING1N":"1294","MAPPING1H":"1295"},{"SYMBOLID":"S*G*UCIN--*****","DESCRIPTION":"Infantry Naval","MAPPING1U":"1296","MAPPING1F":"1297","MAPPING1N":"1298","MAPPING1H":"1299"},{"SYMBOLID":"S*G*UCII--*****","DESCRIPTION":"Infantry Fighting Vehicle","MAPPING1U":"1300","MAPPING1F":"1301","MAPPING1N":"1302","MAPPING1H":"1303"},{"SYMBOLID":"S*G*UCIC--*****","DESCRIPTION":"Infantry Arctic","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"1092"},{"SYMBOLID":"S*G*UCE---*****","DESCRIPTION":"Engineer","MAPPING1U":"1304","MAPPING1F":"1304","MAPPING1N":"1304","MAPPING1H":"1304"},{"SYMBOLID":"S*G*UCEC--*****","DESCRIPTION":"Engineer Combat","MAPPING1U":"1305","MAPPING1F":"1305","MAPPING1N":"1305","MAPPING1H":"1305"},{"SYMBOLID":"S*G*UCECS-*****","DESCRIPTION":"Engineer Combat Air Assault","MAPPING1U":"1306","MAPPING1F":"1306","MAPPING1N":"1306","MAPPING1H":"1306"},{"SYMBOLID":"S*G*UCECA-*****","DESCRIPTION":"Engineer Combat Airborne","MAPPING1U":"1307","MAPPING1F":"1307","MAPPING1N":"1307","MAPPING1H":"1307"},{"SYMBOLID":"S*G*UCECC-*****","DESCRIPTION":"Engineer Combat Arctic","MAPPING1U":"1308","MAPPING1F":"1308","MAPPING1N":"1308","MAPPING1H":"1308"},{"SYMBOLID":"S*G*UCECL-*****","DESCRIPTION":"Engineer Combat Light (Sapper)","MAPPING1U":"1309","MAPPING1F":"1309","MAPPING1N":"1309","MAPPING1H":"1309"},{"SYMBOLID":"S*G*UCECM-*****","DESCRIPTION":"Engineer Combat Medium","MAPPING1U":"1310","MAPPING1F":"1310","MAPPING1N":"1310","MAPPING1H":"1310"},{"SYMBOLID":"S*G*UCECH-*****","DESCRIPTION":"Engineer Combat Heavy","MAPPING1U":"1311","MAPPING1F":"1311","MAPPING1N":"1311","MAPPING1H":"1311"},{"SYMBOLID":"S*G*UCECT-*****","DESCRIPTION":"Engineer Combat Mechanized (Track)","MAPPING1U":"1312","MAPPING1F":"1312","MAPPING1N":"1312","MAPPING1H":"1312"},{"SYMBOLID":"S*G*UCECW-*****","DESCRIPTION":"Engineer Combat Motorized","MAPPING1U":"1313","MAPPING1F":"1314","MAPPING1N":"1315","MAPPING1H":"1316"},{"SYMBOLID":"S*G*UCECO-*****","DESCRIPTION":"Engineer Combat Mountain","MAPPING1U":"1317","MAPPING1F":"1317","MAPPING1N":"1317","MAPPING1H":"1317"},{"SYMBOLID":"S*G*UCECR-*****","DESCRIPTION":"Engineer Combat Recon","MAPPING1U":"1318","MAPPING1F":"1319","MAPPING1N":"1320","MAPPING1H":"1321"},{"SYMBOLID":"S*G*UCEN--*****","DESCRIPTION":"Engineer Construction","MAPPING1U":"1322","MAPPING1F":"1322","MAPPING1N":"1322","MAPPING1H":"1322"},{"SYMBOLID":"S*G*UCENN-*****","DESCRIPTION":"Engineer Naval Construction","MAPPING1U":"1323","MAPPING1F":"1323","MAPPING1N":"1323","MAPPING1H":"1323"},{"SYMBOLID":"S*G*UCF---*****","DESCRIPTION":"Field Artillery","MAPPING1U":"1324","MAPPING1F":"1324","MAPPING1N":"1324","MAPPING1H":"1324"},{"SYMBOLID":"S*G*UCFH--*****","DESCRIPTION":"Howitzer/Gun","MAPPING1U":"1324","MAPPING1F":"1324","MAPPING1N":"1324","MAPPING1H":"1324"},{"SYMBOLID":"S*G*UCFHE-*****","DESCRIPTION":"Self-Propelled","MAPPING1U":"1325","MAPPING1F":"1325","MAPPING1N":"1325","MAPPING1H":"1325"},{"SYMBOLID":"S*G*UCFHS-*****","DESCRIPTION":"Howitzer/Gun Air Assault","MAPPING1U":"1326","MAPPING1F":"1326","MAPPING1N":"1326","MAPPING1H":"1326"},{"SYMBOLID":"S*G*UCFHA-*****","DESCRIPTION":"Howitzer/Gun Airborne","MAPPING1U":"1327","MAPPING1F":"1327","MAPPING1N":"1327","MAPPING1H":"1327"},{"SYMBOLID":"S*G*UCFHC-*****","DESCRIPTION":"Arctic","MAPPING1U":"1328","MAPPING1F":"1328","MAPPING1N":"1328","MAPPING1H":"1328"},{"SYMBOLID":"S*G*UCFHO-*****","DESCRIPTION":"Howitzer/Gun Mountain","MAPPING1U":"1329","MAPPING1F":"1329","MAPPING1N":"1329","MAPPING1H":"1329"},{"SYMBOLID":"S*G*UCFHL-*****","DESCRIPTION":"Howitzer/Gun Light","MAPPING1U":"1330","MAPPING1F":"1330","MAPPING1N":"1330","MAPPING1H":"1330"},{"SYMBOLID":"S*G*UCFHM-*****","DESCRIPTION":"Howitzer/Gun Medium","MAPPING1U":"1331","MAPPING1F":"1331","MAPPING1N":"1331","MAPPING1H":"1331"},{"SYMBOLID":"S*G*UCFHH-*****","DESCRIPTION":"Heavy","MAPPING1U":"1332","MAPPING1F":"1332","MAPPING1N":"1332","MAPPING1H":"1332"},{"SYMBOLID":"S*G*UCFHX-*****","DESCRIPTION":"Amphibious","MAPPING1U":"1333","MAPPING1F":"1334","MAPPING1N":"1335","MAPPING1H":"1336"},{"SYMBOLID":"S*G*UCFR--*****","DESCRIPTION":"Rocket","MAPPING1U":"1337","MAPPING1F":"1337","MAPPING1N":"1337","MAPPING1H":"1337"},{"SYMBOLID":"S*G*UCFRS-*****","DESCRIPTION":"Rocket Single Rocket Launcher","MAPPING1U":"1338","MAPPING1F":"1338","MAPPING1N":"1338","MAPPING1H":"1338"},{"SYMBOLID":"S*G*UCFRSS*****","DESCRIPTION":"Single Rocket Self-Propelled","MAPPING1U":"1339","MAPPING1F":"1339","MAPPING1N":"1339","MAPPING1H":"1339"},{"SYMBOLID":"S*G*UCFRSR*****","DESCRIPTION":"Single Rocket Truck","MAPPING1U":"1340","MAPPING1F":"1340","MAPPING1N":"1340","MAPPING1H":"1340"},{"SYMBOLID":"S*G*UCFRST*****","DESCRIPTION":"Single Rocket Towed","MAPPING1U":"1341","MAPPING1F":"1341","MAPPING1N":"1341","MAPPING1H":"1341"},{"SYMBOLID":"S*G*UCFRM-*****","DESCRIPTION":"Multi Rocket Launcher","MAPPING1U":"1342","MAPPING1F":"1342","MAPPING1N":"1342","MAPPING1H":"1342"},{"SYMBOLID":"S*G*UCFRMS*****","DESCRIPTION":"Multi Rocket Self-Propelled","MAPPING1U":"1343","MAPPING1F":"1343","MAPPING1N":"1343","MAPPING1H":"1343"},{"SYMBOLID":"S*G*UCFRMR*****","DESCRIPTION":"Multi Rocket Truck","MAPPING1U":"1344","MAPPING1F":"1344","MAPPING1N":"1344","MAPPING1H":"1344"},{"SYMBOLID":"S*G*UCFRMT*****","DESCRIPTION":"Multi Rocket Towed","MAPPING1U":"1345","MAPPING1F":"1345","MAPPING1N":"1345","MAPPING1H":"1345"},{"SYMBOLID":"S*G*UCFT--*****","DESCRIPTION":"Target Acquisition","MAPPING1U":"1346","MAPPING1F":"1346","MAPPING1N":"1346","MAPPING1H":"1346"},{"SYMBOLID":"S*G*UCFTR-*****","DESCRIPTION":"Target Acquisition Radar","MAPPING1U":"1347","MAPPING1F":"1347","MAPPING1N":"1347","MAPPING1H":"1347"},{"SYMBOLID":"S*G*UCFTS-*****","DESCRIPTION":"Sound","MAPPING1U":"1348","MAPPING1F":"1349","MAPPING1N":"1350","MAPPING1H":"1351","MAPPING2":"405","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFTF-*****","DESCRIPTION":"Flash (Optical)","MAPPING1U":"1352","MAPPING1F":"1352","MAPPING1N":"1352","MAPPING1H":"1352"},{"SYMBOLID":"S*G*UCFTC-*****","DESCRIPTION":"Colt/Fist","MAPPING1U":"1353","MAPPING1F":"1354","MAPPING1N":"1355","MAPPING1H":"1356"},{"SYMBOLID":"S*G*UCFTCD*****","DESCRIPTION":"Dismounted Colt/Fist","MAPPING1U":"1357","MAPPING1F":"1358","MAPPING1N":"1359","MAPPING1H":"1360"},{"SYMBOLID":"S*G*UCFTCM*****","DESCRIPTION":"Tracked Colt/Fist","MAPPING1U":"1361","MAPPING1F":"1362","MAPPING1N":"1363","MAPPING1H":"1364"},{"SYMBOLID":"S*G*UCFTA-*****","DESCRIPTION":"Anglico","MAPPING1U":"1365","MAPPING1F":"1366","MAPPING1N":"1367","MAPPING1H":"1368"},{"SYMBOLID":"S*G*UCFM--*****","DESCRIPTION":"Field Artillery Mortar","MAPPING1U":"1369","MAPPING1F":"1369","MAPPING1N":"1369","MAPPING1H":"1369"},{"SYMBOLID":"S*G*UCFMS-*****","DESCRIPTION":"Self-Propelled (SP) Tracked Mortar","MAPPING1U":"1370","MAPPING1F":"1370","MAPPING1N":"1370","MAPPING1H":"1370"},{"SYMBOLID":"S*G*UCFMW-*****","DESCRIPTION":"SP Wheeled Mortar","MAPPING1U":"1371","MAPPING1F":"1371","MAPPING1N":"1371","MAPPING1H":"1371"},{"SYMBOLID":"S*G*UCFMT-*****","DESCRIPTION":"Towed Mortar","MAPPING1U":"1372","MAPPING1F":"1372","MAPPING1N":"1372","MAPPING1H":"1372"},{"SYMBOLID":"S*G*UCFMTA*****","DESCRIPTION":"Towed Airborne Mortar","MAPPING1U":"1373","MAPPING1F":"1373","MAPPING1N":"1373","MAPPING1H":"1373"},{"SYMBOLID":"S*G*UCFMTS*****","DESCRIPTION":"Towed Air Assault Mortar","MAPPING1U":"1374","MAPPING1F":"1374","MAPPING1N":"1374","MAPPING1H":"1374"},{"SYMBOLID":"S*G*UCFMTC*****","DESCRIPTION":"Towed Arctic Mortar","MAPPING1U":"1375","MAPPING1F":"1375","MAPPING1N":"1375","MAPPING1H":"1375"},{"SYMBOLID":"S*G*UCFMTO*****","DESCRIPTION":"Towed Mountain Mortar","MAPPING1U":"1376","MAPPING1F":"1376","MAPPING1N":"1376","MAPPING1H":"1376"},{"SYMBOLID":"S*G*UCFML-*****","DESCRIPTION":"Amphibious Mortar","MAPPING1U":"1377","MAPPING1F":"1378","MAPPING1N":"1379","MAPPING1H":"1380"},{"SYMBOLID":"S*G*UCFS--*****","DESCRIPTION":"Artillery Survey","MAPPING1U":"1381","MAPPING1F":"1381","MAPPING1N":"1381","MAPPING1H":"1381","MAPPING2":"1382","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSS-*****","DESCRIPTION":"Artillery Survey Air Assault","MAPPING1U":"1383","MAPPING1F":"1383","MAPPING1N":"1383","MAPPING1H":"1383","MAPPING2":"1384","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSA-*****","DESCRIPTION":"Artillery Survey Airborne","MAPPING1U":"1385","MAPPING1F":"1385","MAPPING1N":"1385","MAPPING1H":"1385","MAPPING2":"1386","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSL-*****","DESCRIPTION":"Artillery Survey Light","MAPPING1U":"1387","MAPPING1F":"1387","MAPPING1N":"1387","MAPPING1H":"1387","MAPPING2":"1388","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFSO-*****","DESCRIPTION":"Artillery Survey Mountain","MAPPING1U":"1389","MAPPING1F":"1389","MAPPING1N":"1389","MAPPING1H":"1389","MAPPING2":"1390","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UCFO--*****","DESCRIPTION":"Field Artillery Meteorological","MAPPING1U":"1391","MAPPING1F":"1391","MAPPING1N":"1391","MAPPING1H":"1391"},{"SYMBOLID":"S*G*UCFOS-*****","DESCRIPTION":"Air Assault Meteorological","MAPPING1U":"1392","MAPPING1F":"1392","MAPPING1N":"1392","MAPPING1H":"1392"},{"SYMBOLID":"S*G*UCFOA-*****","DESCRIPTION":"Airborne Meteorological","MAPPING1U":"1393","MAPPING1F":"1393","MAPPING1N":"1393","MAPPING1H":"1393"},{"SYMBOLID":"S*G*UCFOL-*****","DESCRIPTION":"Light Meteorological","MAPPING1U":"1394","MAPPING1F":"1394","MAPPING1N":"1394","MAPPING1H":"1394"},{"SYMBOLID":"S*G*UCFOO-*****","DESCRIPTION":"Mountain Meteorological","MAPPING1U":"1395","MAPPING1F":"1395","MAPPING1N":"1395","MAPPING1H":"1395"},{"SYMBOLID":"S*G*UCR---*****","DESCRIPTION":"Combat Reconnaissance","MAPPING1U":"1396","MAPPING1F":"1397","MAPPING1N":"1398","MAPPING1H":"1399"},{"SYMBOLID":"S*G*UCRH--*****","DESCRIPTION":"Reconnaissance Horse","MAPPING1U":"1400","MAPPING1F":"1400","MAPPING1N":"1400","MAPPING1H":"1400"},{"SYMBOLID":"S*G*UCRV--*****","DESCRIPTION":"Reconnaissance Cavalry","MAPPING1U":"1401","MAPPING1F":"1402","MAPPING1N":"1403","MAPPING1H":"1404"},{"SYMBOLID":"S*G*UCRVA-*****","DESCRIPTION":"Reconnaissance Cavalry Armored","MAPPING1U":"1405","MAPPING1F":"1406","MAPPING1N":"1407","MAPPING1H":"1408"},{"SYMBOLID":"S*G*UCRVM-*****","DESCRIPTION":"Reconnaissance Cavalry Motorized","MAPPING1U":"1409","MAPPING1F":"1410","MAPPING1N":"1411","MAPPING1H":"1412"},{"SYMBOLID":"S*G*UCRVG-*****","DESCRIPTION":"Reconnaissance Cavalry Ground","MAPPING1U":"1413","MAPPING1F":"1414","MAPPING1N":"1415","MAPPING1H":"1416"},{"SYMBOLID":"S*G*UCRVO-*****","DESCRIPTION":"Reconnaissance Cavalry Air","MAPPING1U":"1417","MAPPING1F":"1418","MAPPING1N":"1419","MAPPING1H":"1420"},{"SYMBOLID":"S*G*UCRC--*****","DESCRIPTION":"Reconnaissance Arctic","MAPPING1U":"1421","MAPPING1F":"1422","MAPPING1N":"1423","MAPPING1H":"1424"},{"SYMBOLID":"S*G*UCRS--*****","DESCRIPTION":"Reconnaissance Air Assault","MAPPING1U":"1425","MAPPING1F":"1426","MAPPING1N":"1427","MAPPING1H":"1428"},{"SYMBOLID":"S*G*UCRA--*****","DESCRIPTION":"Reconnaissance Airborne","MAPPING1U":"1429","MAPPING1F":"1430","MAPPING1N":"1431","MAPPING1H":"1432"},{"SYMBOLID":"S*G*UCRO--*****","DESCRIPTION":"Reconnaissance Mountain","MAPPING1U":"1433","MAPPING1F":"1434","MAPPING1N":"1435","MAPPING1H":"1436"},{"SYMBOLID":"S*G*UCRL--*****","DESCRIPTION":"Reconnaissance Light","MAPPING1U":"1437","MAPPING1F":"1438","MAPPING1N":"1439","MAPPING1H":"1440"},{"SYMBOLID":"S*G*UCRR--*****","DESCRIPTION":"Reconnaissance Marine","MAPPING1U":"1441","MAPPING1F":"1442","MAPPING1N":"1443","MAPPING1H":"1444"},{"SYMBOLID":"S*G*UCRRD-*****","DESCRIPTION":"Reconnaissance Marine Division","MAPPING1U":"1445","MAPPING1F":"1446","MAPPING1N":"1447","MAPPING1H":"1448"},{"SYMBOLID":"S*G*UCRRF-*****","DESCRIPTION":"Reconnaissance Marine Force","MAPPING1U":"1449","MAPPING1F":"1450","MAPPING1N":"1451","MAPPING1H":"1452"},{"SYMBOLID":"S*G*UCRRL-*****","DESCRIPTION":"Reconnaissance Marine Light Armored (LAR)","MAPPING1U":"1453","MAPPING1F":"1454","MAPPING1N":"1455","MAPPING1H":"1456"},{"SYMBOLID":"S*G*UCRX--*****","DESCRIPTION":"Reconnaissance Long Range Surveillance (LRS)","MAPPING1U":"1457","MAPPING1F":"1458","MAPPING1N":"1459","MAPPING1H":"1460"},{"SYMBOLID":"S*G*UCM---*****","DESCRIPTION":"Missile (Surf-Surf)","MAPPING1U":"1461","MAPPING1F":"1461","MAPPING1N":"1461","MAPPING1H":"1461"},{"SYMBOLID":"S*G*UCMT--*****","DESCRIPTION":"Missile (Surf-Surf) Tactical","MAPPING1U":"1462","MAPPING1F":"1462","MAPPING1N":"1462","MAPPING1H":"1462"},{"SYMBOLID":"S*G*UCMS--*****","DESCRIPTION":"Missile (Surf-Surf) Strategic","MAPPING1U":"1463","MAPPING1F":"1463","MAPPING1N":"1463","MAPPING1H":"1463"},{"SYMBOLID":"S*G*UCS---*****","DESCRIPTION":"Internal Security Forces","MAPPING1U":"1464","MAPPING1F":"1464","MAPPING1N":"1464","MAPPING1H":"1464"},{"SYMBOLID":"S*G*UCSW--*****","DESCRIPTION":"Internal Security Forces Riverine","MAPPING1U":"1465","MAPPING1F":"1466","MAPPING1N":"1467","MAPPING1H":"1468"},{"SYMBOLID":"S*G*UCSG--*****","DESCRIPTION":"Internal Security Forces Ground","MAPPING1U":"1469","MAPPING1F":"1469","MAPPING1N":"1469","MAPPING1H":"1469"},{"SYMBOLID":"S*G*UCSGD-*****","DESCRIPTION":"Internal Security Forces Dismounted","MAPPING1U":"1470","MAPPING1F":"1471","MAPPING1N":"1472","MAPPING1H":"1473"},{"SYMBOLID":"S*G*UCSGM-*****","DESCRIPTION":"Internal Security Forces Motorized","MAPPING1U":"1474","MAPPING1F":"1475","MAPPING1N":"1476","MAPPING1H":"1477"},{"SYMBOLID":"S*G*UCSGA-*****","DESCRIPTION":"Internal Security Forces Mechanized","MAPPING1U":"1478","MAPPING1F":"1478","MAPPING1N":"1478","MAPPING1H":"1478"},{"SYMBOLID":"S*G*UCSM--*****","DESCRIPTION":"Internal Security Forces Wheeled Mechanized","MAPPING1U":"1479","MAPPING1F":"1479","MAPPING1N":"1479","MAPPING1H":"1479"},{"SYMBOLID":"S*G*UCSR--*****","DESCRIPTION":"Internal Security Forces Railroad","MAPPING1U":"1480","MAPPING1F":"1480","MAPPING1N":"1480","MAPPING1H":"1480"},{"SYMBOLID":"S*G*UCSA--*****","DESCRIPTION":"Internal Security Forces Aviation","MAPPING1U":"1481","MAPPING1F":"1481","MAPPING1N":"1481","MAPPING1H":"1481"},{"SYMBOLID":"S*G*UCL---*****","DESCRIPTION":"Surveillance Unit","MAPPING1U":"1890","MAPPING1F":"1890","MAPPING1N":"1890","MAPPING1H":"1890"},{"SYMBOLID":"S*G*UU----*****","DESCRIPTION":"Combat Support","MAPPING1U":"1482","MAPPING1F":"1482","MAPPING1N":"1482","MAPPING1H":"1482"},{"SYMBOLID":"S*G*UUA---*****","DESCRIPTION":"Combat Support NBC","MAPPING1U":"1483","MAPPING1F":"1483","MAPPING1N":"1483","MAPPING1H":"1483"},{"SYMBOLID":"S*G*UUAC--*****","DESCRIPTION":"Combat Support Chemical","MAPPING1U":"1484","MAPPING1F":"1484","MAPPING1N":"1484","MAPPING1H":"1484"},{"SYMBOLID":"S*G*UUACC-*****","DESCRIPTION":"Smoke/Decon","MAPPING1U":"1485","MAPPING1F":"1485","MAPPING1N":"1485","MAPPING1H":"1485"},{"SYMBOLID":"S*G*UUACCK*****","DESCRIPTION":"Mechanized Smoke/Decon","MAPPING1U":"1486","MAPPING1F":"1486","MAPPING1N":"1486","MAPPING1H":"1486"},{"SYMBOLID":"S*G*UUACCM*****","DESCRIPTION":"Motorized Smoke/Decon","MAPPING1U":"1487","MAPPING1F":"1488","MAPPING1N":"1489","MAPPING1H":"1490"},{"SYMBOLID":"S*G*UUACS-*****","DESCRIPTION":"Smoke","MAPPING1U":"1491","MAPPING1F":"1491","MAPPING1N":"1491","MAPPING1H":"1491"},{"SYMBOLID":"S*G*UUACSM*****","DESCRIPTION":"Motorized Smoke","MAPPING1U":"1492","MAPPING1F":"1493","MAPPING1N":"1494","MAPPING1H":"1495"},{"SYMBOLID":"S*G*UUACSA*****","DESCRIPTION":"Armor Smoke","MAPPING1U":"1496","MAPPING1F":"1496","MAPPING1N":"1496","MAPPING1H":"1496"},{"SYMBOLID":"S*G*UUACR-*****","DESCRIPTION":"Chemical Recon","MAPPING1U":"1497","MAPPING1F":"1498","MAPPING1N":"1499","MAPPING1H":"1500"},{"SYMBOLID":"S*G*UUACRW*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle","MAPPING1U":"1501","MAPPING1F":"1502","MAPPING1N":"1503","MAPPING1H":"1504"},{"SYMBOLID":"S*G*UUACRS*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle Reconnaissance Surveillance","MAPPING1U":"1505","MAPPING1F":"1506","MAPPING1N":"1507","MAPPING1H":"1508"},{"SYMBOLID":"S*G*UUAN--*****","DESCRIPTION":"Combat Support NBC Nuclear","MAPPING1U":"1509","MAPPING1F":"1509","MAPPING1N":"1509","MAPPING1H":"1509"},{"SYMBOLID":"S*G*UUAB--*****","DESCRIPTION":"Combat Support NBC Biological","MAPPING1U":"1510","MAPPING1F":"1510","MAPPING1N":"1510","MAPPING1H":"1510"},{"SYMBOLID":"S*G*UUABR-*****","DESCRIPTION":"Recon Equipped","MAPPING1U":"1511","MAPPING1F":"1512","MAPPING1N":"1513","MAPPING1H":"1514"},{"SYMBOLID":"S*G*UUAD--*****","DESCRIPTION":"NBC Decontamination","MAPPING1U":"1515","MAPPING1F":"1515","MAPPING1N":"1515","MAPPING1H":"1515"},{"SYMBOLID":"S*G*UUM---*****","DESCRIPTION":"Military Intelligence","MAPPING1U":"1516","MAPPING1F":"1516","MAPPING1N":"1516","MAPPING1H":"1516"},{"SYMBOLID":"S*G*UUMA--*****","DESCRIPTION":"Aerial Exploitation","MAPPING1U":"1517","MAPPING1F":"1517","MAPPING1N":"1517","MAPPING1H":"1517"},{"SYMBOLID":"S*G*UUMS--*****","DESCRIPTION":"Signal Intelligence (SIGINT)","MAPPING1U":"1518","MAPPING1F":"1518","MAPPING1N":"1518","MAPPING1H":"1518"},{"SYMBOLID":"S*G*UUMSE-*****","DESCRIPTION":"Electronic Warfare","MAPPING1U":"1519","MAPPING1F":"1519","MAPPING1N":"1519","MAPPING1H":"1519"},{"SYMBOLID":"S*G*UUMSEA*****","DESCRIPTION":"Armored Wheeled Vehicle","MAPPING1U":"600","MAPPING1F":"601","MAPPING1N":"602","MAPPING1H":"603","MAPPING2":"1520","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUMSED*****","DESCRIPTION":"Direction Finding","MAPPING1U":"1521","MAPPING1F":"1521","MAPPING1N":"1521","MAPPING1H":"1521"},{"SYMBOLID":"S*G*UUMSEI*****","DESCRIPTION":"Intercept","MAPPING1U":"1522","MAPPING1F":"1522","MAPPING1N":"1522","MAPPING1H":"1522"},{"SYMBOLID":"S*G*UUMSEJ*****","DESCRIPTION":"Jamming","MAPPING1U":"1523","MAPPING1F":"1524","MAPPING1N":"1525","MAPPING1H":"1526"},{"SYMBOLID":"S*G*UUMSET*****","DESCRIPTION":"Theater","MAPPING1U":"1527","MAPPING1F":"1528","MAPPING1N":"1529","MAPPING1H":"1530"},{"SYMBOLID":"S*G*UUMSEC*****","DESCRIPTION":"Corps","MAPPING1U":"1531","MAPPING1F":"1532","MAPPING1N":"1533","MAPPING1H":"1534"},{"SYMBOLID":"S*G*UUMC--*****","DESCRIPTION":"Counter Intelligence","MAPPING1U":"1535","MAPPING1F":"1535","MAPPING1N":"1535","MAPPING1H":"1535"},{"SYMBOLID":"S*G*UUMR--*****","DESCRIPTION":"Counter Intelligence Surveillance","MAPPING1U":"1536","MAPPING1F":"1536","MAPPING1N":"1536","MAPPING1H":"1536"},{"SYMBOLID":"S*G*UUMRG-*****","DESCRIPTION":"Ground Surveillance Radar","MAPPING1U":"1537","MAPPING1F":"1537","MAPPING1N":"1537","MAPPING1H":"1537"},{"SYMBOLID":"S*G*UUMRS-*****","DESCRIPTION":"Surveillance Sensor","MAPPING1U":"1538","MAPPING1F":"1539","MAPPING1N":"1540","MAPPING1H":"1541","MAPPING2":"1542","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUMRSS*****","DESCRIPTION":"Sensor SCM","MAPPING1U":"1543","MAPPING1F":"1544","MAPPING1N":"1545","MAPPING1H":"1546","MAPPING2":"1542","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUMRX-*****","DESCRIPTION":"Ground Station Module","MAPPING1U":"1547","MAPPING1F":"1547","MAPPING1N":"1547","MAPPING1H":"1547"},{"SYMBOLID":"S*G*UUMMO-*****","DESCRIPTION":"Surveillance Meteorological","MAPPING1U":"1548","MAPPING1F":"1548","MAPPING1N":"1548","MAPPING1H":"1548"},{"SYMBOLID":"S*G*UUMO--*****","DESCRIPTION":"Military Intelligence Operations","MAPPING1U":"1549","MAPPING1F":"1549","MAPPING1N":"1549","MAPPING1H":"1549"},{"SYMBOLID":"S*G*UUMT--*****","DESCRIPTION":"Tactical Exploit","MAPPING1U":"1550","MAPPING1F":"1550","MAPPING1N":"1550","MAPPING1H":"1550"},{"SYMBOLID":"S*G*UUMQ--*****","DESCRIPTION":"Interrogation","MAPPING1U":"1551","MAPPING1F":"1551","MAPPING1N":"1551","MAPPING1H":"1551"},{"SYMBOLID":"S*G*UUMJ--*****","DESCRIPTION":"Joint Intelligence Center","MAPPING1U":"1552","MAPPING1F":"1552","MAPPING1N":"1552","MAPPING1H":"1552"},{"SYMBOLID":"S*G*UUL---*****","DESCRIPTION":"Law Enforcement Unit","MAPPING1U":"1553","MAPPING1F":"1553","MAPPING1N":"1553","MAPPING1H":"1553"},{"SYMBOLID":"S*G*UULS--*****","DESCRIPTION":"Shore Patrol","MAPPING1U":"1554","MAPPING1F":"1554","MAPPING1N":"1554","MAPPING1H":"1554"},{"SYMBOLID":"S*G*UULM--*****","DESCRIPTION":"Military Police","MAPPING1U":"1555","MAPPING1F":"1555","MAPPING1N":"1555","MAPPING1H":"1555"},{"SYMBOLID":"S*G*UULC--*****","DESCRIPTION":"Civilian Law Enforcement","MAPPING1U":"1556","MAPPING1F":"1556","MAPPING1N":"1556","MAPPING1H":"1556"},{"SYMBOLID":"S*G*UULF--*****","DESCRIPTION":"Security Police (Air)","MAPPING1U":"1557","MAPPING1F":"1557","MAPPING1N":"1557","MAPPING1H":"1557"},{"SYMBOLID":"S*G*UULD--*****","DESCRIPTION":"Central Intelligence Division (CID)","MAPPING1U":"1558","MAPPING1F":"1558","MAPPING1N":"1558","MAPPING1H":"1558"},{"SYMBOLID":"S*G*UUS---*****","DESCRIPTION":"Signal Unit","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562"},{"SYMBOLID":"S*G*UUSA--*****","DESCRIPTION":"Area","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1563","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSC--*****","DESCRIPTION":"Communication Configured Package","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1564","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSCL-*****","DESCRIPTION":"Large Communication Configured Package (LCCP)","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1565","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSO--*****","DESCRIPTION":"Command Operations","MAPPING1U":"1559","MAPPING2":"1566","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSF--*****","DESCRIPTION":"Forward Communications","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1567","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSM--*****","DESCRIPTION":"Multiple Subscriber Element","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1568","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSMS-*****","DESCRIPTION":"Small Extension Node","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1569","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSML-*****","DESCRIPTION":"Large Extension Node","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1570","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSMN-*****","DESCRIPTION":"Node Center","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1571","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSR--*****","DESCRIPTION":"Radio Unit","MAPPING1U":"1572","MAPPING1F":"1573","MAPPING1N":"1574","MAPPING1H":"1575"},{"SYMBOLID":"S*G*UUSRS-*****","DESCRIPTION":"Tactical Satellite","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1576","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSRT-*****","DESCRIPTION":"Teletype Center","MAPPING1U":"1577","MAPPING1F":"1578","MAPPING1N":"1579","MAPPING1H":"1580"},{"SYMBOLID":"S*G*UUSRW-*****","DESCRIPTION":"Relay","MAPPING1U":"1581","MAPPING1F":"1582","MAPPING1N":"1583","MAPPING1H":"1584"},{"SYMBOLID":"S*G*UUSS--*****","DESCRIPTION":"Signal Support","MAPPING1U":"1559","MAPPING1F":"1560","MAPPING1N":"1561","MAPPING1H":"1562","MAPPING2":"1585","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUSW--*****","DESCRIPTION":"Telephone Switch","MAPPING1U":"1586","MAPPING1F":"1587","MAPPING1N":"1588","MAPPING1H":"1589"},{"SYMBOLID":"S*G*UUSX--*****","DESCRIPTION":"Electronic Ranging","MAPPING1U":"1590","MAPPING1F":"1590","MAPPING1N":"1590","MAPPING1H":"1590","MAPPING2":"1591","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*UUI---*****","DESCRIPTION":"Information Warfare Unit","MAPPING1U":"1592","MAPPING1F":"1592","MAPPING1N":"1592","MAPPING1H":"1592"},{"SYMBOLID":"S*G*UUP---*****","DESCRIPTION":"Landing Support","MAPPING1U":"612","MAPPING1F":"613","MAPPING1N":"614","MAPPING1H":"615","MAPPING2":"1593","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UUE---*****","DESCRIPTION":"Explosive Ordnance Disposal","MAPPING1U":"1594","MAPPING1F":"1594","MAPPING1N":"1594","MAPPING1H":"1594"},{"SYMBOLID":"S*G*US----*****","DESCRIPTION":"Combat Service Support","MAPPING1U":"1595","MAPPING1F":"1595","MAPPING1N":"1595","MAPPING1H":"1595"},{"SYMBOLID":"S*G*USA---*****","DESCRIPTION":"Administrative (ADMIN)","MAPPING1U":"1596","MAPPING1F":"1596","MAPPING1N":"1596","MAPPING1H":"1596"},{"SYMBOLID":"S*G*USAT--*****","DESCRIPTION":"Admin Theater","MAPPING1U":"1597","MAPPING1F":"1598","MAPPING1N":"1599","MAPPING1H":"1600"},{"SYMBOLID":"S*G*USAC--*****","DESCRIPTION":"Admin Corps","MAPPING1U":"1601","MAPPING1F":"1602","MAPPING1N":"1603","MAPPING1H":"1604"},{"SYMBOLID":"S*G*USAJ--*****","DESCRIPTION":"Judge Advocate General (JAG)","MAPPING1U":"1605","MAPPING1F":"1605","MAPPING1N":"1605","MAPPING1H":"1605"},{"SYMBOLID":"S*G*USAJT-*****","DESCRIPTION":"JAG Theater","MAPPING1U":"1606","MAPPING1F":"1607","MAPPING1N":"1608","MAPPING1H":"1609"},{"SYMBOLID":"S*G*USAJC-*****","DESCRIPTION":"JAG Corps","MAPPING1U":"1610","MAPPING1F":"1611","MAPPING1N":"1612","MAPPING1H":"1613"},{"SYMBOLID":"S*G*USAO--*****","DESCRIPTION":"Postal","MAPPING1U":"1614","MAPPING1F":"1614","MAPPING1N":"1614","MAPPING1H":"1614"},{"SYMBOLID":"S*G*USAOT-*****","DESCRIPTION":"Postal Theater","MAPPING1U":"1615","MAPPING1F":"1616","MAPPING1N":"1617","MAPPING1H":"1618"},{"SYMBOLID":"S*G*USAOC-*****","DESCRIPTION":"Postal Corps","MAPPING1U":"1619","MAPPING1F":"1620","MAPPING1N":"1621","MAPPING1H":"1622"},{"SYMBOLID":"S*G*USAF--*****","DESCRIPTION":"Finance","MAPPING1U":"1623","MAPPING1F":"1623","MAPPING1N":"1623","MAPPING1H":"1623"},{"SYMBOLID":"S*G*USAFT-*****","DESCRIPTION":"Finance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1623","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAFC-*****","DESCRIPTION":"Finance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1623","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAS--*****","DESCRIPTION":"Personnel Services","MAPPING1U":"1624","MAPPING1F":"1624","MAPPING1N":"1624","MAPPING1H":"1624"},{"SYMBOLID":"S*G*USAST-*****","DESCRIPTION":"Personnel Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1624","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USASC-*****","DESCRIPTION":"Personnel Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1624","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAM--*****","DESCRIPTION":"Mortuary/Graves Registry","MAPPING1U":"1625","MAPPING1F":"1625","MAPPING1N":"1625","MAPPING1H":"1625"},{"SYMBOLID":"S*G*USAMT-*****","DESCRIPTION":"Mortuary/Graves Registry Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1625","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAMC-*****","DESCRIPTION":"Mortuary/Graves Registry Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1625","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAR--*****","DESCRIPTION":"Religious/Chaplain","MAPPING1U":"1626","MAPPING1F":"1626","MAPPING1N":"1626","MAPPING1H":"1626"},{"SYMBOLID":"S*G*USART-*****","DESCRIPTION":"Religious/Chaplain Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1626","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USARC-*****","DESCRIPTION":"Religious/Chaplain Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1626","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAP--*****","DESCRIPTION":"Public Affairs","MAPPING1U":"1627","MAPPING1F":"1627","MAPPING1N":"1627","MAPPING1H":"1627"},{"SYMBOLID":"S*G*USAPT-*****","DESCRIPTION":"Public Affairs Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1627","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPC-*****","DESCRIPTION":"Public Affairs Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1627","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPB-*****","DESCRIPTION":"Public Affairs Broadcast","MAPPING1U":"1628","MAPPING1F":"1628","MAPPING1N":"1628","MAPPING1H":"1628"},{"SYMBOLID":"S*G*USAPBT*****","DESCRIPTION":"Public Affairs Broadcast Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1628","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPBC*****","DESCRIPTION":"Public Affairs Broadcast Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1628","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPM-*****","DESCRIPTION":"Public Affairs Joint Information Bureau (JIB)","MAPPING1U":"1630","MAPPING1F":"1630","MAPPING1N":"1630","MAPPING1H":"1630"},{"SYMBOLID":"S*G*USAPMT*****","DESCRIPTION":"Public Affairs JIB Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1630","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAPMC*****","DESCRIPTION":"Public Affairs JIB Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1630","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAX--*****","DESCRIPTION":"Replacement Holding Unit (RHU)","MAPPING1U":"1631","MAPPING1F":"1631","MAPPING1N":"1631","MAPPING1H":"1631"},{"SYMBOLID":"S*G*USAXT-*****","DESCRIPTION":"RHU Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1631","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAXC-*****","DESCRIPTION":"RHU Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1631","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAL--*****","DESCRIPTION":"Labor","MAPPING1U":"1633","MAPPING1F":"1633","MAPPING1N":"1633","MAPPING1H":"1633"},{"SYMBOLID":"S*G*USALT-*****","DESCRIPTION":"Labor Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1633","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USALC-*****","DESCRIPTION":"Labor Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1633","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAW--*****","DESCRIPTION":"Morale, Welfare, Recreation (MWR)","MAPPING1U":"1634","MAPPING1F":"1634","MAPPING1N":"1634","MAPPING1H":"1634"},{"SYMBOLID":"S*G*USAWT-*****","DESCRIPTION":"MWR Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1634","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAWC-*****","DESCRIPTION":"MWR Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1634","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAQ--*****","DESCRIPTION":"Quartermaster (Supply)","MAPPING1U":"1636","MAPPING1F":"1636","MAPPING1N":"1636","MAPPING1H":"1636"},{"SYMBOLID":"S*G*USAQT-*****","DESCRIPTION":"Quartermaster (Supply) Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1636","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USAQC-*****","DESCRIPTION":"Quartermaster (Supply) Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1636","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USM---*****","DESCRIPTION":"Medical","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640"},{"SYMBOLID":"S*G*USMT--*****","DESCRIPTION":"Medical Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644"},{"SYMBOLID":"S*G*USMC--*****","DESCRIPTION":"Medical Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648"},{"SYMBOLID":"S*G*USMM--*****","DESCRIPTION":"Medical Treatment Facility","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMMT-*****","DESCRIPTION":"Medical Treatment Facility Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMMC-*****","DESCRIPTION":"Medical Treatment Facility Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1649","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMV--*****","DESCRIPTION":"Medical Veterinary","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMVT-*****","DESCRIPTION":"Medical Veterinary Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMVC-*****","DESCRIPTION":"Medical Veterinary Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1650","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMD--*****","DESCRIPTION":"Medical Dental","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMDT-*****","DESCRIPTION":"Medical Dental Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMDC-*****","DESCRIPTION":"Medical Dental Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1651","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMP--*****","DESCRIPTION":"Medical Psychological","MAPPING1U":"1637","MAPPING1F":"1638","MAPPING1N":"1639","MAPPING1H":"1640","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMPT-*****","DESCRIPTION":"Medical Psychological Theater","MAPPING1U":"1641","MAPPING1F":"1642","MAPPING1N":"1643","MAPPING1H":"1644","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USMPC-*****","DESCRIPTION":"Medical Psychological Corps","MAPPING1U":"1645","MAPPING1F":"1646","MAPPING1N":"1647","MAPPING1H":"1648","MAPPING2":"1652","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS---*****","DESCRIPTION":"Supply","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656"},{"SYMBOLID":"S*G*USST--*****","DESCRIPTION":"Supply Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660"},{"SYMBOLID":"S*G*USSC--*****","DESCRIPTION":"Supply Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664"},{"SYMBOLID":"S*G*USS1--*****","DESCRIPTION":"Supply Class I","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS1T-*****","DESCRIPTION":"Supply Class I Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS1C-*****","DESCRIPTION":"Supply Class I Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1665","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2--*****","DESCRIPTION":"Supply Class II","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2T-*****","DESCRIPTION":"Supply Class II Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS2C-*****","DESCRIPTION":"Supply Class II Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1666","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3--*****","DESCRIPTION":"Supply Class III","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3T-*****","DESCRIPTION":"Supply Class III Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3C-*****","DESCRIPTION":"Supply Class III Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1667","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3A-*****","DESCRIPTION":"Supply Class III Aviation","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3AT*****","DESCRIPTION":"Supply Class III Aviation Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS3AC*****","DESCRIPTION":"Supply Class III Aviation Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1668","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4--*****","DESCRIPTION":"Supply Class IV","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4T-*****","DESCRIPTION":"Supply Class IV Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS4C-*****","DESCRIPTION":"Supply Class IV Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1669","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5--*****","DESCRIPTION":"Supply Class V","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5T-*****","DESCRIPTION":"Supply Class V Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS5C-*****","DESCRIPTION":"Supply Class V Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1670","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6--*****","DESCRIPTION":"Supply Class VI","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6T-*****","DESCRIPTION":"Supply Class VI Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS6C-*****","DESCRIPTION":"Supply Class VI Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1671","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7--*****","DESCRIPTION":"Supply Class VII","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7T-*****","DESCRIPTION":"Supply Class VII Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS7C-*****","DESCRIPTION":"Supply Class VII Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1672","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS8--*****","DESCRIPTION":"Supply Class VIII","MAPPING1U":"1673","MAPPING1F":"1674","MAPPING1N":"1675","MAPPING1H":"1676"},{"SYMBOLID":"S*G*USS8T-*****","DESCRIPTION":"Supply Class VIII Theater","MAPPING1U":"1677","MAPPING1F":"1678","MAPPING1N":"1679","MAPPING1H":"1680"},{"SYMBOLID":"S*G*USS8C-*****","DESCRIPTION":"Supply Class VIII Corps","MAPPING1U":"1681","MAPPING1F":"1682","MAPPING1N":"1683","MAPPING1H":"1684"},{"SYMBOLID":"S*G*USS9--*****","DESCRIPTION":"Supply Class IX","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS9T-*****","DESCRIPTION":"Supply Class IX Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USS9C-*****","DESCRIPTION":"Supply Class IX Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1685","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSX--*****","DESCRIPTION":"Supply Class X","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSXT-*****","DESCRIPTION":"Supply Class X Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSXC-*****","DESCRIPTION":"Supply Class X Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1686","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSL--*****","DESCRIPTION":"Supply Laundry/Bath","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSLT-*****","DESCRIPTION":"Supply Laundry/Bath Theater","MAPPING1U":"1657","MAPPING1F":"1658","MAPPING1N":"1659","MAPPING1H":"1660","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSLC-*****","DESCRIPTION":"Supply Laundry/Bath Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1687","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSW--*****","DESCRIPTION":"Supply Water","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWT-*****","DESCRIPTION":"Supply Water Theater","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWC-*****","DESCRIPTION":"Supply Water Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1688","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWP-*****","DESCRIPTION":"Supply Water Purification","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWPT*****","DESCRIPTION":"Supply Water Purification Theater","MAPPING1U":"1653","MAPPING1F":"1654","MAPPING1N":"1655","MAPPING1H":"1656","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USSWPC*****","DESCRIPTION":"Supply Water Purification Corps","MAPPING1U":"1661","MAPPING1F":"1662","MAPPING1N":"1663","MAPPING1H":"1664","MAPPING2":"1689","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UST---*****","DESCRIPTION":"Transportation","MAPPING1U":"1690","MAPPING1F":"1690","MAPPING1N":"1690","MAPPING1H":"1690"},{"SYMBOLID":"S*G*USTT--*****","DESCRIPTION":"Transportation Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1690","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTC--*****","DESCRIPTION":"Transportation Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1690","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTM--*****","DESCRIPTION":"Movement Control Center (MCC)","MAPPING1U":"1691","MAPPING1F":"1691","MAPPING1N":"1691","MAPPING1H":"1691"},{"SYMBOLID":"S*G*USTMT-*****","DESCRIPTION":"MCC Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1691","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTMC-*****","DESCRIPTION":"MCC Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1691","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTR--*****","DESCRIPTION":"Railhead","MAPPING1U":"1692","MAPPING1F":"1692","MAPPING1N":"1692","MAPPING1H":"1692"},{"SYMBOLID":"S*G*USTRT-*****","DESCRIPTION":"Railhead Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1692","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTRC-*****","DESCRIPTION":"Railhead Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1692","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTS--*****","DESCRIPTION":"SPOD/SPOE","MAPPING1U":"1693","MAPPING1F":"1693","MAPPING1N":"1693","MAPPING1H":"1693"},{"SYMBOLID":"S*G*USTST-*****","DESCRIPTION":"SPOD/SPOE Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1693","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTSC-*****","DESCRIPTION":"SPOD/SPOE Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1693","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTA--*****","DESCRIPTION":"APOD/APOE","MAPPING1U":"1694","MAPPING1F":"1694","MAPPING1N":"1694","MAPPING1H":"1694"},{"SYMBOLID":"S*G*USTAT-*****","DESCRIPTION":"APOD/APOE Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1694","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTAC-*****","DESCRIPTION":"APOD/APOE Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1694","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTI--*****","DESCRIPTION":"Missile","MAPPING1U":"1695","MAPPING1F":"1695","MAPPING1N":"1695","MAPPING1H":"1695"},{"SYMBOLID":"S*G*USTIT-*****","DESCRIPTION":"Missile Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1695","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USTIC-*****","DESCRIPTION":"Missile Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1695","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USX---*****","DESCRIPTION":"Maintenance","MAPPING1U":"1696","MAPPING1F":"1696","MAPPING1N":"1696","MAPPING1H":"1696"},{"SYMBOLID":"S*G*USXT--*****","DESCRIPTION":"Maintenance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1696","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXC--*****","DESCRIPTION":"Maintenance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1696","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXH--*****","DESCRIPTION":"Maintenance Heavy","MAPPING1U":"1697","MAPPING1F":"1697","MAPPING1N":"1697","MAPPING1H":"1697"},{"SYMBOLID":"S*G*USXHT-*****","DESCRIPTION":"Maintenance Heavy Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1697","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXHC-*****","DESCRIPTION":"Maintenance Heavy Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1697","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXR--*****","DESCRIPTION":"Maintenance Recovery","MAPPING1U":"1698","MAPPING1F":"1698","MAPPING1N":"1698","MAPPING1H":"1698"},{"SYMBOLID":"S*G*USXRT-*****","DESCRIPTION":"Maintenance Recovery Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1698","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXRC-*****","DESCRIPTION":"Maintenance Recovery Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1698","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXO--*****","DESCRIPTION":"Ordnance","MAPPING1U":"1699","MAPPING1F":"1699","MAPPING1N":"1699","MAPPING1H":"1699"},{"SYMBOLID":"S*G*USXOT-*****","DESCRIPTION":"Ordnance Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1699","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOC-*****","DESCRIPTION":"Ordnance Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1699","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOM-*****","DESCRIPTION":"Ordnance Missile","MAPPING1U":"1700","MAPPING1F":"1700","MAPPING1N":"1700","MAPPING1H":"1700"},{"SYMBOLID":"S*G*USXOMT*****","DESCRIPTION":"Ordnance Missile Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1700","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXOMC*****","DESCRIPTION":"Ordnance Missile Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1700","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXE--*****","DESCRIPTION":"Electro-Optical","MAPPING1U":"1701","MAPPING1F":"1701","MAPPING1N":"1701","MAPPING1H":"1701"},{"SYMBOLID":"S*G*USXET-*****","DESCRIPTION":"Electro-Optical Theater","MAPPING1U":"640","MAPPING1F":"641","MAPPING1N":"642","MAPPING1H":"643","MAPPING2":"1701","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*USXEC-*****","DESCRIPTION":"Electro-Optical Corps","MAPPING1U":"648","MAPPING1F":"649","MAPPING1N":"650","MAPPING1H":"651","MAPPING2":"1701","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*UH----*****","DESCRIPTION":"Special C2 Headquarters Component"},{"SYMBOLID":"S*G*E-----*****","DESCRIPTION":"Ground Track Equipment"},{"SYMBOLID":"S*G*EW----*****","DESCRIPTION":"Weapon"},{"SYMBOLID":"S*G*EWM---*****","DESCRIPTION":"Missile Launcher","MAPPING1U":"1702","MAPPING1F":"1702","MAPPING1N":"1702","MAPPING1H":"1702"},{"SYMBOLID":"S*G*EWMA--*****","DESCRIPTION":"Air Defense (AD) Missile Launcher","MAPPING1U":"1703","MAPPING1F":"1703","MAPPING1N":"1703","MAPPING1H":"1703"},{"SYMBOLID":"S*G*EWMAS-*****","DESCRIPTION":"Short Range AD Missile Launcher","MAPPING1U":"1704","MAPPING1F":"1704","MAPPING1N":"1704","MAPPING1H":"1704"},{"SYMBOLID":"S*G*EWMASR*****","DESCRIPTION":"Short Range Transporter Launcher and Radar (TLAR)","MAPPING1U":"1705","MAPPING1F":"1705","MAPPING1N":"1705","MAPPING1H":"1705"},{"SYMBOLID":"S*G*EWMASE*****","DESCRIPTION":"Short Range Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1706","MAPPING1F":"1706","MAPPING1N":"1706","MAPPING1H":"1706"},{"SYMBOLID":"S*G*EWMAI-*****","DESCRIPTION":"Intermediate Range AD Missile Launcher","MAPPING1U":"1707","MAPPING1F":"1707","MAPPING1N":"1707","MAPPING1H":"1707"},{"SYMBOLID":"S*G*EWMAIR*****","DESCRIPTION":"Intermediate Transporter Launcher and Radar (TLAR)","MAPPING1U":"1708","MAPPING1F":"1708","MAPPING1N":"1708","MAPPING1H":"1708"},{"SYMBOLID":"S*G*EWMAIE*****","DESCRIPTION":"Intermediate Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1709","MAPPING1F":"1709","MAPPING1N":"1709","MAPPING1H":"1709"},{"SYMBOLID":"S*G*EWMAL-*****","DESCRIPTION":"Long Range AD Missile Launcher","MAPPING1U":"1710","MAPPING1F":"1710","MAPPING1N":"1710","MAPPING1H":"1710"},{"SYMBOLID":"S*G*EWMALR*****","DESCRIPTION":"Long Range Transporter Launcher and Radar (TLAR)","MAPPING1U":"1711","MAPPING1F":"1711","MAPPING1N":"1711","MAPPING1H":"1711"},{"SYMBOLID":"S*G*EWMALE*****","DESCRIPTION":"Long Range Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1712","MAPPING1F":"1712","MAPPING1N":"1712","MAPPING1H":"1712"},{"SYMBOLID":"S*G*EWMAT-*****","DESCRIPTION":"AD Missile Launcher Theater","MAPPING1U":"1713","MAPPING1F":"1713","MAPPING1N":"1713","MAPPING1H":"1713"},{"SYMBOLID":"S*G*EWMATR*****","DESCRIPTION":"Theater Transporter Launcher and Radar (TLAR)","MAPPING1U":"1714","MAPPING1F":"1714","MAPPING1N":"1714","MAPPING1H":"1714"},{"SYMBOLID":"S*G*EWMATE*****","DESCRIPTION":"Theater Transporter Erector Launcher and Radar (TELAR)","MAPPING1U":"1715","MAPPING1F":"1715","MAPPING1N":"1715","MAPPING1H":"1715"},{"SYMBOLID":"S*G*EWMS--*****","DESCRIPTION":"Surf-Surf (SS) Missile Launcher","MAPPING1U":"1716","MAPPING1F":"1716","MAPPING1N":"1716","MAPPING1H":"1716"},{"SYMBOLID":"S*G*EWMSS-*****","DESCRIPTION":"Short Range SS Missile Launcher","MAPPING1U":"1717","MAPPING1F":"1717","MAPPING1N":"1717","MAPPING1H":"1717"},{"SYMBOLID":"S*G*EWMSI-*****","DESCRIPTION":"Intermediate Range SS Missile Launcher","MAPPING1U":"1718","MAPPING1F":"1718","MAPPING1N":"1718","MAPPING1H":"1718"},{"SYMBOLID":"S*G*EWMSL-*****","DESCRIPTION":"Long Range SS Missile Launcher","MAPPING1U":"1719","MAPPING1F":"1719","MAPPING1N":"1719","MAPPING1H":"1719"},{"SYMBOLID":"S*G*EWMT--*****","DESCRIPTION":"Missile Launcher Antitank (AT)","MAPPING1U":"1720","MAPPING1F":"1720","MAPPING1N":"1720","MAPPING1H":"1720"},{"SYMBOLID":"S*G*EWMTL-*****","DESCRIPTION":"Missile Launcher AT Light","MAPPING1U":"1721","MAPPING1F":"1721","MAPPING1N":"1721","MAPPING1H":"1721"},{"SYMBOLID":"S*G*EWMTM-*****","DESCRIPTION":"Missile Launcher AT Medium","MAPPING1U":"1722","MAPPING1F":"1722","MAPPING1N":"1722","MAPPING1H":"1722"},{"SYMBOLID":"S*G*EWMTH-*****","DESCRIPTION":"Missile Launcher AT Heavy","MAPPING1U":"1723","MAPPING1F":"1723","MAPPING1N":"1723","MAPPING1H":"1723"},{"SYMBOLID":"S*G*EWS---*****","DESCRIPTION":"Weapon Single Rocket Launcher","MAPPING1U":"1724","MAPPING1F":"1724","MAPPING1N":"1724","MAPPING1H":"1724"},{"SYMBOLID":"S*G*EWSL--*****","DESCRIPTION":"Single Rocket Launcher Light","MAPPING1U":"1725","MAPPING1F":"1725","MAPPING1N":"1725","MAPPING1H":"1725"},{"SYMBOLID":"S*G*EWSM--*****","DESCRIPTION":"Single Rocket Launcher Medium","MAPPING1U":"1726","MAPPING1F":"1726","MAPPING1N":"1726","MAPPING1H":"1726"},{"SYMBOLID":"S*G*EWSH--*****","DESCRIPTION":"Single Rocket Launcher Heavy","MAPPING1U":"1727","MAPPING1F":"1727","MAPPING1N":"1727","MAPPING1H":"1727"},{"SYMBOLID":"S*G*EWX---*****","DESCRIPTION":"Multiple Rocket Launcher","MAPPING1U":"1728","MAPPING1F":"1728","MAPPING1N":"1728","MAPPING1H":"1728"},{"SYMBOLID":"S*G*EWXL--*****","DESCRIPTION":"Multiple Rocket Launcher Light","MAPPING1U":"1729","MAPPING1F":"1729","MAPPING1N":"1729","MAPPING1H":"1729"},{"SYMBOLID":"S*G*EWXM--*****","DESCRIPTION":"Multiple Rocket Launcher Medium","MAPPING1U":"1730","MAPPING1F":"1730","MAPPING1N":"1730","MAPPING1H":"1730"},{"SYMBOLID":"S*G*EWXH--*****","DESCRIPTION":"Multiple Rocket Launcher Heavy","MAPPING1U":"1731","MAPPING1F":"1731","MAPPING1N":"1731","MAPPING1H":"1731"},{"SYMBOLID":"S*G*EWT---*****","DESCRIPTION":"Anti-Tank Rocket Launcher","MAPPING1U":"1732","MAPPING1F":"1732","MAPPING1N":"1732","MAPPING1H":"1732"},{"SYMBOLID":"S*G*EWTL--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Light","MAPPING1U":"1733","MAPPING1F":"1733","MAPPING1N":"1733","MAPPING1H":"1733"},{"SYMBOLID":"S*G*EWTM--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Medium","MAPPING1U":"1734","MAPPING1F":"1734","MAPPING1N":"1734","MAPPING1H":"1734"},{"SYMBOLID":"S*G*EWTH--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Heavy","MAPPING1U":"1735","MAPPING1F":"1735","MAPPING1N":"1735","MAPPING1H":"1735"},{"SYMBOLID":"S*G*EWR---*****","DESCRIPTION":"Rifle/Automatic Weapon","MAPPING1U":"1736","MAPPING1F":"1736","MAPPING1N":"1736","MAPPING1H":"1736"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Rifle","MAPPING1U":"1737","MAPPING1F":"1737","MAPPING1N":"1737","MAPPING1H":"1737"},{"SYMBOLID":"S*G*EWRL--*****","DESCRIPTION":"Light Machine Gun","MAPPING1U":"1738","MAPPING1F":"1738","MAPPING1N":"1738","MAPPING1H":"1738"},{"SYMBOLID":"S*G*EWRH--*****","DESCRIPTION":"Heavy Machine Gun","MAPPING1U":"1739","MAPPING1F":"1739","MAPPING1N":"1739","MAPPING1H":"1739"},{"SYMBOLID":"S*G*EWZ---*****","DESCRIPTION":"Grenade Launcher","MAPPING1U":"1740","MAPPING1F":"1740","MAPPING1N":"1740","MAPPING1H":"1740"},{"SYMBOLID":"S*G*EWZL--*****","DESCRIPTION":"Grenade Launcher Light","MAPPING1U":"1741","MAPPING1F":"1741","MAPPING1N":"1741","MAPPING1H":"1741"},{"SYMBOLID":"S*G*EWZM--*****","DESCRIPTION":"Grenade Launcher Medium","MAPPING1U":"1742","MAPPING1F":"1742","MAPPING1N":"1742","MAPPING1H":"1742"},{"SYMBOLID":"S*G*EWZH--*****","DESCRIPTION":"Grenade Launcher Heavy","MAPPING1U":"1743","MAPPING1F":"1743","MAPPING1N":"1743","MAPPING1H":"1743"},{"SYMBOLID":"S*G*EWO---*****","DESCRIPTION":"Weapon Mortar","MAPPING1U":"1744","MAPPING1F":"1744","MAPPING1N":"1744","MAPPING1H":"1744"},{"SYMBOLID":"S*G*EWOL--*****","DESCRIPTION":"Mortar Light","MAPPING1U":"1745","MAPPING1F":"1745","MAPPING1N":"1745","MAPPING1H":"1745"},{"SYMBOLID":"S*G*EWOM--*****","DESCRIPTION":"Mortar Medium","MAPPING1U":"1746","MAPPING1F":"1746","MAPPING1N":"1746","MAPPING1H":"1746"},{"SYMBOLID":"S*G*EWOH--*****","DESCRIPTION":"Mortar Heavy","MAPPING1U":"1747","MAPPING1F":"1747","MAPPING1N":"1747","MAPPING1H":"1747"},{"SYMBOLID":"S*G*EWH---*****","DESCRIPTION":"Howitzer","MAPPING1U":"1748","MAPPING1F":"1748","MAPPING1N":"1748","MAPPING1H":"1748"},{"SYMBOLID":"S*G*EWHL--*****","DESCRIPTION":"Howitzer Light","MAPPING1U":"1749","MAPPING1F":"1749","MAPPING1N":"1749","MAPPING1H":"1749"},{"SYMBOLID":"S*G*EWHLS-*****","DESCRIPTION":"Howitzer Light Self-Propelled","MAPPING1U":"1750","MAPPING1F":"1750","MAPPING1N":"1750","MAPPING1H":"1750"},{"SYMBOLID":"S*G*EWHM--*****","DESCRIPTION":"Howitzer Medium","MAPPING1U":"1751","MAPPING1F":"1751","MAPPING1N":"1751","MAPPING1H":"1751"},{"SYMBOLID":"S*G*EWHMS-*****","DESCRIPTION":"Howitzer Medium Self-Propelled","MAPPING1U":"1752","MAPPING1F":"1752","MAPPING1N":"1752","MAPPING1H":"1752"},{"SYMBOLID":"S*G*EWHH--*****","DESCRIPTION":"Howitzer Heavy","MAPPING1U":"1753","MAPPING1F":"1753","MAPPING1N":"1753","MAPPING1H":"1753"},{"SYMBOLID":"S*G*EWHHS-*****","DESCRIPTION":"Howitzer Heavy Self-Propelled","MAPPING1U":"1754","MAPPING1F":"1754","MAPPING1N":"1754","MAPPING1H":"1754"},{"SYMBOLID":"S*G*EWG---*****","DESCRIPTION":"Anti-Tank Gun","MAPPING1U":"1755","MAPPING1F":"1755","MAPPING1N":"1755","MAPPING1H":"1755"},{"SYMBOLID":"S*G*EWGL--*****","DESCRIPTION":"Anti-Tank Gun Light","MAPPING1U":"1756","MAPPING1F":"1756","MAPPING1N":"1756","MAPPING1H":"1756"},{"SYMBOLID":"S*G*EWGM--*****","DESCRIPTION":"Anti-Tank Gun Medium","MAPPING1U":"1757","MAPPING1F":"1757","MAPPING1N":"1757","MAPPING1H":"1757"},{"SYMBOLID":"S*G*EWGH--*****","DESCRIPTION":"Anti-Tank Gun Heavy","MAPPING1U":"1758","MAPPING1F":"1758","MAPPING1N":"1758","MAPPING1H":"1758"},{"SYMBOLID":"S*G*EWGR--*****","DESCRIPTION":"Anti-Tank Gun Recoilless","MAPPING1U":"1759","MAPPING1F":"1759","MAPPING1N":"1759","MAPPING1H":"1759"},{"SYMBOLID":"S*G*EWD---*****","DESCRIPTION":"Direct Fire Gun","MAPPING1U":"1760","MAPPING1F":"1760","MAPPING1N":"1760","MAPPING1H":"1760"},{"SYMBOLID":"S*G*EWDL--*****","DESCRIPTION":"Direct Fire Gun Light","MAPPING1U":"1761","MAPPING1F":"1761","MAPPING1N":"1761","MAPPING1H":"1761"},{"SYMBOLID":"S*G*EWDLS-*****","DESCRIPTION":"Direct Fire Gun Light Self-Propelled","MAPPING1U":"1762","MAPPING1F":"1762","MAPPING1N":"1762","MAPPING1H":"1762"},{"SYMBOLID":"S*G*EWDM--*****","DESCRIPTION":"Direct Fire Gun Medium","MAPPING1U":"1763","MAPPING1F":"1763","MAPPING1N":"1763","MAPPING1H":"1763"},{"SYMBOLID":"S*G*EWDMS-*****","DESCRIPTION":"Direct Fire Gun Medium Self-Propelled","MAPPING1U":"1764","MAPPING1F":"1764","MAPPING1N":"1764","MAPPING1H":"1764"},{"SYMBOLID":"S*G*EWDH--*****","DESCRIPTION":"Direct Fire Gun Heavy","MAPPING1U":"1765","MAPPING1F":"1765","MAPPING1N":"1765","MAPPING1H":"1765"},{"SYMBOLID":"S*G*EWDHS-*****","DESCRIPTION":"Direct Fire Gun Heavy Self-Propelled","MAPPING1U":"1766","MAPPING1F":"1766","MAPPING1N":"1766","MAPPING1H":"1766"},{"SYMBOLID":"S*G*EWA---*****","DESCRIPTION":"Air Defense Gun","MAPPING1U":"1767","MAPPING1F":"1767","MAPPING1N":"1767","MAPPING1H":"1767"},{"SYMBOLID":"S*G*EWAL--*****","DESCRIPTION":"Air Defense Gun Light","MAPPING1U":"1768","MAPPING1F":"1768","MAPPING1N":"1768","MAPPING1H":"1768"},{"SYMBOLID":"S*G*EWAM--*****","DESCRIPTION":"Air Defense Gun Medium","MAPPING1U":"1769","MAPPING1F":"1769","MAPPING1N":"1769","MAPPING1H":"1769"},{"SYMBOLID":"S*G*EWAH--*****","DESCRIPTION":"Air Defense Gun Heavy","MAPPING1U":"1770","MAPPING1F":"1770","MAPPING1N":"1770","MAPPING1H":"1770"},{"SYMBOLID":"S*G*EV----*****","DESCRIPTION":"Ground Vehicle","MAPPING1U":"1771","MAPPING1F":"1771","MAPPING1N":"1771","MAPPING1H":"1771"},{"SYMBOLID":"S*G*EVA---*****","DESCRIPTION":"Armored Vehicle","MAPPING1U":"1772","MAPPING1F":"1772","MAPPING1N":"1772","MAPPING1H":"1772"},{"SYMBOLID":"S*G*EVAT--*****","DESCRIPTION":"Tank","MAPPING1U":"1773","MAPPING1F":"1773","MAPPING1N":"1773","MAPPING1H":"1773"},{"SYMBOLID":"S*G*EVATL-*****","DESCRIPTION":"Tank Light","MAPPING1U":"1774","MAPPING1F":"1774","MAPPING1N":"1774","MAPPING1H":"1774"},{"SYMBOLID":"S*G*EVATLR*****","DESCRIPTION":"Tank Light Recovery","MAPPING1U":"1775","MAPPING1F":"1775","MAPPING1N":"1775","MAPPING1H":"1775"},{"SYMBOLID":"S*G*EVATM-*****","DESCRIPTION":"Tank Medium","MAPPING1U":"1776","MAPPING1F":"1776","MAPPING1N":"1776","MAPPING1H":"1776"},{"SYMBOLID":"S*G*EVATMR*****","DESCRIPTION":"Tank Medium Recovery","MAPPING1U":"1777","MAPPING1F":"1777","MAPPING1N":"1777","MAPPING1H":"1777"},{"SYMBOLID":"S*G*EVATH-*****","DESCRIPTION":"Tank Heavy","MAPPING1U":"1778","MAPPING1F":"1778","MAPPING1N":"1778","MAPPING1H":"1778"},{"SYMBOLID":"S*G*EVATHR*****","DESCRIPTION":"Tank Heavy Recovery","MAPPING1U":"1779","MAPPING1F":"1779","MAPPING1N":"1779","MAPPING1H":"1779"},{"SYMBOLID":"S*G*EVAA--*****","DESCRIPTION":"Armored Personnel Carrier","MAPPING1U":"1780","MAPPING1F":"1780","MAPPING1N":"1780","MAPPING1H":"1780"},{"SYMBOLID":"S*G*EVAAR-*****","DESCRIPTION":"Armored Personnel Carrier Recovery","MAPPING1U":"1781","MAPPING1F":"1781","MAPPING1N":"1781","MAPPING1H":"1781"},{"SYMBOLID":"S*G*EVAI--*****","DESCRIPTION":"Armored Infantry","MAPPING1U":"1782","MAPPING1F":"1782","MAPPING1N":"1782","MAPPING1H":"1782"},{"SYMBOLID":"S*G*EVAC--*****","DESCRIPTION":"C2V/ACV","MAPPING1U":"1783","MAPPING1F":"1783","MAPPING1N":"1783","MAPPING1H":"1783"},{"SYMBOLID":"S*G*EVAS--*****","DESCRIPTION":"Combat Service Support Vehicle","MAPPING1U":"1784","MAPPING1F":"1784","MAPPING1N":"1784","MAPPING1H":"1784"},{"SYMBOLID":"S*G*EVAL--*****","DESCRIPTION":"Light Armored Vehicle","MAPPING1U":"1785","MAPPING1F":"1785","MAPPING1N":"1785","MAPPING1H":"1785"},{"SYMBOLID":"S*G*EVU---*****","DESCRIPTION":"Utility Vehicle","MAPPING1U":"1786","MAPPING1F":"1786","MAPPING1N":"1786","MAPPING1H":"1786"},{"SYMBOLID":"S*G*EVUB--*****","DESCRIPTION":"Bus","MAPPING1U":"1787","MAPPING1F":"1787","MAPPING1N":"1787","MAPPING1H":"1787"},{"SYMBOLID":"S*G*EVUS--*****","DESCRIPTION":"Semi","MAPPING1U":"1788","MAPPING1F":"1788","MAPPING1N":"1788","MAPPING1H":"1788"},{"SYMBOLID":"S*G*EVUSL-*****","DESCRIPTION":"Semi Light","MAPPING1U":"1789","MAPPING1F":"1789","MAPPING1N":"1789","MAPPING1H":"1789"},{"SYMBOLID":"S*G*EVUSM-*****","DESCRIPTION":"Semi Medium","MAPPING1U":"1790","MAPPING1F":"1790","MAPPING1N":"1790","MAPPING1H":"1790"},{"SYMBOLID":"S*G*EVUSH-*****","DESCRIPTION":"Semi Heavy","MAPPING1U":"1791","MAPPING1F":"1791","MAPPING1N":"1791","MAPPING1H":"1791"},{"SYMBOLID":"S*G*EVUL--*****","DESCRIPTION":"Limited Cross-Country Truck","MAPPING1U":"1792","MAPPING1F":"1792","MAPPING1N":"1792","MAPPING1H":"1792"},{"SYMBOLID":"S*G*EVUX--*****","DESCRIPTION":"Cross-Country Truck","MAPPING1U":"1793","MAPPING1F":"1793","MAPPING1N":"1793","MAPPING1H":"1793"},{"SYMBOLID":"S*G*EVUR--*****","DESCRIPTION":"Water Craft","MAPPING1U":"1794","MAPPING1F":"1794","MAPPING1N":"1794","MAPPING1H":"1794"},{"SYMBOLID":"S*G*EVUT--*****","DESCRIPTION":"Tow Truck","MAPPING1U":"1795","MAPPING1F":"1795","MAPPING1N":"1795","MAPPING1H":"1795"},{"SYMBOLID":"S*G*EVUTL-*****","DESCRIPTION":"Tow Truck Light","MAPPING1U":"1796","MAPPING1F":"1796","MAPPING1N":"1796","MAPPING1H":"1796"},{"SYMBOLID":"S*G*EVUTH-*****","DESCRIPTION":"Tow Truck Heavy","MAPPING1U":"1797","MAPPING1F":"1797","MAPPING1N":"1797","MAPPING1H":"1797"},{"SYMBOLID":"S*G*EVUA--*****","DESCRIPTION":"Ambulance","MAPPING1U":"1798","MAPPING1F":"1798","MAPPING1N":"1798","MAPPING1H":"1798"},{"SYMBOLID":"S*G*EVUAA-*****","DESCRIPTION":"Ambulance Armored","MAPPING1U":"1799","MAPPING1F":"1799","MAPPING1N":"1799","MAPPING1H":"1799"},{"SYMBOLID":"S*G*EVE---*****","DESCRIPTION":"Engineer Vehicle","MAPPING1U":"1800","MAPPING1F":"1800","MAPPING1N":"1800","MAPPING1H":"1800"},{"SYMBOLID":"S*G*EVEB--*****","DESCRIPTION":"Engineer Vehicle Bridge","MAPPING1U":"1894","MAPPING1F":"1894","MAPPING1N":"1894","MAPPING1H":"1894"},{"SYMBOLID":"S*G*EVEE--*****","DESCRIPTION":"Earthmover","MAPPING1U":"1801","MAPPING1F":"1801","MAPPING1N":"1801","MAPPING1H":"1801"},{"SYMBOLID":"S*G*EVEC--*****","DESCRIPTION":"Construction Vehicle","MAPPING1U":"1802","MAPPING1F":"1802","MAPPING1N":"1802","MAPPING1H":"1802"},{"SYMBOLID":"S*G*EVEM--*****","DESCRIPTION":"Mine Laying Vehicle","MAPPING1U":"1803","MAPPING1F":"1803","MAPPING1N":"1803","MAPPING1H":"1803"},{"SYMBOLID":"S*G*EVEMV-*****","DESCRIPTION":"Armored Carrier with Volcano","MAPPING1U":"1804","MAPPING1F":"1804","MAPPING1N":"1804","MAPPING1H":"1804"},{"SYMBOLID":"S*G*EVEML-*****","DESCRIPTION":"Truck Mounted with Volcano","MAPPING1U":"1805","MAPPING1F":"1805","MAPPING1N":"1805","MAPPING1H":"1805"},{"SYMBOLID":"S*G*EVEA--*****","DESCRIPTION":"Mine Clearing Vehicle","MAPPING1U":"1806","MAPPING1F":"1806","MAPPING1N":"1806","MAPPING1H":"1806"},{"SYMBOLID":"S*G*EVEAA-*****","DESCRIPTION":"Armored Mounted Mine Clearing Vehicle","MAPPING1U":"1807","MAPPING1F":"1807","MAPPING1N":"1807","MAPPING1H":"1807"},{"SYMBOLID":"S*G*EVEAT-*****","DESCRIPTION":"Trailer Mounted Mine Clearing Vehicle","MAPPING1U":"1808","MAPPING1F":"1808","MAPPING1N":"1808","MAPPING1H":"1808"},{"SYMBOLID":"S*G*EVED--*****","DESCRIPTION":"Dozer","MAPPING1U":"1809","MAPPING1F":"1809","MAPPING1N":"1809","MAPPING1H":"1809"},{"SYMBOLID":"S*G*EVEDA-*****","DESCRIPTION":"Armored Dozer","MAPPING1U":"1810","MAPPING1F":"1810","MAPPING1N":"1810","MAPPING1H":"1810"},{"SYMBOLID":"S*G*EVES--*****","DESCRIPTION":"Armored Assault","MAPPING1U":"1811","MAPPING1F":"1811","MAPPING1N":"1811","MAPPING1H":"1811"},{"SYMBOLID":"S*G*EVER--*****","DESCRIPTION":"Armored Engineer Recon Vehicle (AERV)","MAPPING1U":"1812","MAPPING1F":"1812","MAPPING1N":"1812","MAPPING1H":"1812"},{"SYMBOLID":"S*G*EVEH--*****","DESCRIPTION":"Backhoe","MAPPING1U":"1813","MAPPING1F":"1813","MAPPING1N":"1813","MAPPING1H":"1813"},{"SYMBOLID":"S*G*EVEF--*****","DESCRIPTION":"Ferry Transporter","MAPPING1U":"1814","MAPPING1F":"1814","MAPPING1N":"1814","MAPPING1H":"1814"},{"SYMBOLID":"S*G*EVT---*****","DESCRIPTION":"Train Locomotive","MAPPING1U":"1815","MAPPING1F":"1815","MAPPING1N":"1815","MAPPING1H":"1815"},{"SYMBOLID":"S*G*EVC---*****","DESCRIPTION":"Civilian Vehicle","MAPPING1U":"1816","MAPPING1F":"1816","MAPPING1N":"1816","MAPPING1H":"1816"},{"SYMBOLID":"S*G*EVCA--*****","DESCRIPTION":"Civilian Automobile","MAPPING1U":"1817","MAPPING1F":"1817","MAPPING1N":"1817","MAPPING1H":"1817","MAPPING2":"1818","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAL-*****","DESCRIPTION":"Civilian Compact Automobile","MAPPING1U":"1819","MAPPING1F":"1819","MAPPING1N":"1819","MAPPING1H":"1819","MAPPING2":"1820","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAM-*****","DESCRIPTION":"Civilian Midsize Automobile","MAPPING1U":"1821","MAPPING1F":"1821","MAPPING1N":"1821","MAPPING1H":"1821","MAPPING2":"1822","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCAH-*****","DESCRIPTION":"Civilian Automobile Sedan","MAPPING1U":"1823","MAPPING1F":"1823","MAPPING1N":"1823","MAPPING1H":"1823","MAPPING2":"1824","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCO--*****","DESCRIPTION":"Civilian Open-Bed Truck","MAPPING1U":"1825","MAPPING1F":"1825","MAPPING1N":"1825","MAPPING1H":"1825","MAPPING2":"1826","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOL-*****","DESCRIPTION":"Civilian Pickup Truck","MAPPING1U":"1827","MAPPING1F":"1827","MAPPING1N":"1827","MAPPING1H":"1827","MAPPING2":"1828","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOM-*****","DESCRIPTION":"Civilian Small Open-Bed Truck","MAPPING1U":"1829","MAPPING1F":"1829","MAPPING1N":"1829","MAPPING1H":"1829","MAPPING2":"1830","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCOH-*****","DESCRIPTION":"Civilian Large Open-Bed Truck","MAPPING1U":"1831","MAPPING1F":"1831","MAPPING1N":"1831","MAPPING1H":"1831","MAPPING2":"1832","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCM--*****","DESCRIPTION":"Civilian Multi-Passenger Vehicle","MAPPING1U":"1833","MAPPING1F":"1833","MAPPING1N":"1833","MAPPING1H":"1833","MAPPING2":"1834","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCML-*****","DESCRIPTION":"Civilian Multi-Passenger Van","MAPPING1U":"1835","MAPPING1F":"1835","MAPPING1N":"1835","MAPPING1H":"1835","MAPPING2":"1836","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCMM-*****","DESCRIPTION":"Civilian Small Bus","MAPPING1U":"1837","MAPPING1F":"1837","MAPPING1N":"1837","MAPPING1H":"1837","MAPPING2":"1838","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCMH-*****","DESCRIPTION":"Civilian Large Bus","MAPPING1U":"1839","MAPPING1F":"1839","MAPPING1N":"1839","MAPPING1H":"1839","MAPPING2":"1840","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCU--*****","DESCRIPTION":"Civilian Utility Vehicle","MAPPING1U":"1841","MAPPING1F":"1841","MAPPING1N":"1841","MAPPING1H":"1841","MAPPING2":"1842","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUL-*****","DESCRIPTION":"Civilian Sport Utility Vehicle (SUV)","MAPPING1U":"1843","MAPPING1F":"1843","MAPPING1N":"1843","MAPPING1H":"1843","MAPPING2":"1844","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUM-*****","DESCRIPTION":"Civilian Utility Small Box Truck","MAPPING1U":"1845","MAPPING1F":"1845","MAPPING1N":"1845","MAPPING1H":"1845","MAPPING2":"1846","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCUH-*****","DESCRIPTION":"Civilian Utility Large Box Truck","MAPPING1U":"1847","MAPPING1F":"1847","MAPPING1N":"1847","MAPPING1H":"1847","MAPPING2":"1848","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJ--*****","DESCRIPTION":"Civilian Jeep Type Vehicle","MAPPING1U":"1849","MAPPING1F":"1849","MAPPING1N":"1849","MAPPING1H":"1849","MAPPING2":"1850","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJL-*****","DESCRIPTION":"Civilian Small/Light Jeep Type Vehicle","MAPPING1U":"1851","MAPPING1F":"1851","MAPPING1N":"1851","MAPPING1H":"1851","MAPPING2":"1852","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJM-*****","DESCRIPTION":"Civilian Medium Jeep Type Vehicle","MAPPING1U":"1853","MAPPING1F":"1853","MAPPING1N":"1853","MAPPING1H":"1853","MAPPING2":"1854","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCJH-*****","DESCRIPTION":"Civilian Large/Heavy Jeep Type Vehicle","MAPPING1U":"1855","MAPPING1F":"1855","MAPPING1N":"1855","MAPPING1H":"1855","MAPPING2":"1856","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCT--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Box Trailer","MAPPING1U":"1857","MAPPING1F":"1857","MAPPING1N":"1857","MAPPING1H":"1857","MAPPING2":"1858","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTL-*****","DESCRIPTION":"Civilian Small/Light Box Trailer","MAPPING1U":"1859","MAPPING1F":"1859","MAPPING1N":"1859","MAPPING1H":"1859","MAPPING2":"1860","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTM-*****","DESCRIPTION":"Civilian Medium Box Trailer","MAPPING1U":"1861","MAPPING1F":"1861","MAPPING1N":"1861","MAPPING1H":"1861","MAPPING2":"1862","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCTH-*****","DESCRIPTION":"Civilian Large/Heavy Box Trailer","MAPPING1U":"1863","MAPPING1F":"1863","MAPPING1N":"1863","MAPPING1H":"1863","MAPPING2":"1864","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCF--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Flatbed Trailer","MAPPING1U":"1865","MAPPING1F":"1865","MAPPING1N":"1865","MAPPING1H":"1865","MAPPING2":"1866","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFL-*****","DESCRIPTION":"Civilian Small/Light Flatbed Trailer","MAPPING1U":"1867","MAPPING1F":"1867","MAPPING1N":"1867","MAPPING1H":"1867","MAPPING2":"1868","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFM-*****","DESCRIPTION":"Civilian Medium Flatbed Trailer","MAPPING1U":"1869","MAPPING1F":"1869","MAPPING1N":"1869","MAPPING1H":"1869","MAPPING2":"1870","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVCFH-*****","DESCRIPTION":"Civilian Large/Heavy Flatbed Trailer","MAPPING1U":"1871","MAPPING1F":"1871","MAPPING1N":"1871","MAPPING1H":"1871","MAPPING2":"1872","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*G*EVS---*****","DESCRIPTION":"Missile Support","MAPPING1U":"1874","MAPPING1F":"1874","MAPPING1N":"1874","MAPPING1H":"1874"},{"SYMBOLID":"S*G*EVST--*****","DESCRIPTION":"Transloader","MAPPING1U":"1875","MAPPING1F":"1875","MAPPING1N":"1875","MAPPING1H":"1875"},{"SYMBOLID":"S*G*EVSR--*****","DESCRIPTION":"Transporter"},{"SYMBOLID":"S*G*EVSC--*****","DESCRIPTION":"Crane/Loading Device","MAPPING1U":"1877","MAPPING1F":"1877","MAPPING1N":"1877","MAPPING1H":"1877"},{"SYMBOLID":"S*G*EVSP--*****","DESCRIPTION":"Propellant Transporter","MAPPING1U":"1878","MAPPING1F":"1878","MAPPING1N":"1878","MAPPING1H":"1878"},{"SYMBOLID":"S*G*EVSW--*****","DESCRIPTION":"Warhead Transporter","MAPPING1U":"1879","MAPPING1F":"1879","MAPPING1N":"1879","MAPPING1H":"1879"},{"SYMBOLID":"S*G*EVM---*****","DESCRIPTION":"Pack Animal(s)","MAPPING1U":"1873","MAPPING1F":"1873","MAPPING1N":"1873","MAPPING1H":"1873"},{"SYMBOLID":"S*G*ES----*****","DESCRIPTION":"Equipment Sensor","MAPPING1U":"1880","MAPPING1F":"1880","MAPPING1N":"1880","MAPPING1H":"1880"},{"SYMBOLID":"S*G*ESR---*****","DESCRIPTION":"Sensor Radar","MAPPING1U":"1881","MAPPING1F":"1881","MAPPING1N":"1881","MAPPING1H":"1881"},{"SYMBOLID":"S*G*ESE---*****","DESCRIPTION":"Emplaced Sensor","MAPPING1U":"1882","MAPPING1F":"1882","MAPPING1N":"1882","MAPPING1H":"1882"},{"SYMBOLID":"S*G*EX----*****","DESCRIPTION":"Special"},{"SYMBOLID":"S*G*EXL---*****","DESCRIPTION":"Laser","MAPPING1U":"1884","MAPPING1F":"1884","MAPPING1N":"1884","MAPPING1H":"1884"},{"SYMBOLID":"S*G*EXN---*****","DESCRIPTION":"NBC Equipment","MAPPING1U":"1885","MAPPING1F":"1885","MAPPING1N":"1885","MAPPING1H":"1885"},{"SYMBOLID":"S*G*EXF---*****","DESCRIPTION":"Flame Thrower","MAPPING1U":"1886","MAPPING1F":"1886","MAPPING1N":"1886","MAPPING1H":"1886"},{"SYMBOLID":"S*G*EXM---*****","DESCRIPTION":"Land Mines","MAPPING1U":"1887","MAPPING1F":"1887","MAPPING1N":"1887","MAPPING1H":"1887"},{"SYMBOLID":"S*G*EXMC--*****","DESCRIPTION":"Claymore","MAPPING1U":"1888","MAPPING1F":"1888","MAPPING1N":"1888","MAPPING1H":"1888"},{"SYMBOLID":"S*G*EXML--*****","DESCRIPTION":"Less Than Lethal","MAPPING1U":"1889","MAPPING1F":"1889","MAPPING1N":"1889","MAPPING1H":"1889"},{"SYMBOLID":"S*G*EXI---*****","DESCRIPTION":"IED","MAPPING1U":"1883","MAPPING1F":"1883","MAPPING1N":"1883","MAPPING1H":"1883"},{"SYMBOLID":"S*G*EXI---*****","DESCRIPTION":"VBIED","MAPPING1U":"1883","MAPPING1F":"1883","MAPPING1N":"1883","MAPPING1H":"1883"},{"SYMBOLID":"S*G*I-----*****","DESCRIPTION":"Installation"},{"SYMBOLID":"S*G*IR----*****","DESCRIPTION":"Raw Material Production/Storage","MAPPING1U":"1897","MAPPING1F":"1897","MAPPING1N":"1897","MAPPING1H":"1897"},{"SYMBOLID":"S*G*IRM---*****","DESCRIPTION":"Raw Material Production/Storage Mine","MAPPING1U":"1898","MAPPING1F":"1898","MAPPING1N":"1898","MAPPING1H":"1898"},{"SYMBOLID":"S*G*IRP---*****","DESCRIPTION":"Petroleum/Gas/Oil","MAPPING1U":"1899","MAPPING1F":"1899","MAPPING1N":"1899","MAPPING1H":"1899"},{"SYMBOLID":"S*G*IRN---*****","DESCRIPTION":"NBC","MAPPING1U":"1900","MAPPING1F":"1900","MAPPING1N":"1900","MAPPING1H":"1900"},{"SYMBOLID":"S*G*IRNB--*****","DESCRIPTION":"Production/Storage NBC Biological","MAPPING1U":"1901","MAPPING1F":"1901","MAPPING1N":"1901","MAPPING1H":"1901"},{"SYMBOLID":"S*G*IRNC--*****","DESCRIPTION":"Production/Storage NBC Chemical","MAPPING1U":"1902","MAPPING1F":"1902","MAPPING1N":"1902","MAPPING1H":"1902"},{"SYMBOLID":"S*G*IRNN--*****","DESCRIPTION":"Production/Storage NBC Nuclear","MAPPING1U":"1903","MAPPING1F":"1903","MAPPING1N":"1903","MAPPING1H":"1903"},{"SYMBOLID":"S*G*IP----*****","DESCRIPTION":"Processing Facility","MAPPING1U":"1904","MAPPING1F":"1904","MAPPING1N":"1904","MAPPING1H":"1904"},{"SYMBOLID":"S*G*IPD---*****","DESCRIPTION":"Processing Facility Decontamination","MAPPING1U":"1905","MAPPING1F":"1905","MAPPING1N":"1905","MAPPING1H":"1905"},{"SYMBOLID":"S*G*IE----*****","DESCRIPTION":"Equipment Manufacture","MAPPING1U":"1906","MAPPING1F":"1906","MAPPING1N":"1906","MAPPING1H":"1906"},{"SYMBOLID":"S*G*IU----*****","DESCRIPTION":"Service, Reasearch, Utility Facility","MAPPING1U":"1907","MAPPING1F":"1907","MAPPING1N":"1907","MAPPING1H":"1907"},{"SYMBOLID":"S*G*IUR---*****","DESCRIPTION":"Technological Research Facility","MAPPING1U":"1908","MAPPING1F":"1908","MAPPING1N":"1908","MAPPING1H":"1908"},{"SYMBOLID":"S*G*IUT---*****","DESCRIPTION":"Telecommunications Facility","MAPPING1U":"1909","MAPPING1F":"1909","MAPPING1N":"1909","MAPPING1H":"1909"},{"SYMBOLID":"S*G*IUE---*****","DESCRIPTION":"Electric Power Facility","MAPPING1U":"1910","MAPPING1F":"1910","MAPPING1N":"1910","MAPPING1H":"1910"},{"SYMBOLID":"S*G*IUEN--*****","DESCRIPTION":"Nuclear Plant","MAPPING1U":"1911","MAPPING1F":"1911","MAPPING1N":"1911","MAPPING1H":"1911"},{"SYMBOLID":"S*G*IUED--*****","DESCRIPTION":"Dam","MAPPING1U":"1912","MAPPING1F":"1912","MAPPING1N":"1912","MAPPING1H":"1912"},{"SYMBOLID":"S*G*IUEF--*****","DESCRIPTION":"Fossil Fuel","MAPPING1U":"1913","MAPPING1F":"1913","MAPPING1N":"1913","MAPPING1H":"1913"},{"SYMBOLID":"S*G*IUP---*****","DESCRIPTION":"Public Water Services","MAPPING1U":"1914","MAPPING1F":"1914","MAPPING1N":"1914","MAPPING1H":"1914"},{"SYMBOLID":"S*G*IM----*****","DESCRIPTION":"Military Materiel Facility"},{"SYMBOLID":"S*G*IMF---*****","DESCRIPTION":"Nuclear Energy","MAPPING1U":"1915","MAPPING1F":"1915","MAPPING1N":"1915","MAPPING1H":"1915"},{"SYMBOLID":"S*G*IMFA--*****","DESCRIPTION":"Atomic Energy Reactor","MAPPING1U":"1916","MAPPING1F":"1916","MAPPING1N":"1916","MAPPING1H":"1916"},{"SYMBOLID":"S*G*IMFP--*****","DESCRIPTION":"Nuclear Material Production","MAPPING1U":"1917","MAPPING1F":"1917","MAPPING1N":"1917","MAPPING1H":"1917"},{"SYMBOLID":"S*G*IMFPW-*****","DESCRIPTION":"Weapons Grade","MAPPING1U":"1918","MAPPING1F":"1918","MAPPING1N":"1918","MAPPING1H":"1918"},{"SYMBOLID":"S*G*IMFS--*****","DESCRIPTION":"Nuclear Material Storage","MAPPING1U":"1919","MAPPING1F":"1919","MAPPING1N":"1919","MAPPING1H":"1919"},{"SYMBOLID":"S*G*IMA---*****","DESCRIPTION":"Aircraft Production & Assembly","MAPPING1U":"1920","MAPPING1F":"1920","MAPPING1N":"1920","MAPPING1H":"1920"},{"SYMBOLID":"S*G*IME---*****","DESCRIPTION":"Ammunition And Explosives Production","MAPPING1U":"1921","MAPPING1F":"1921","MAPPING1N":"1921","MAPPING1H":"1921"},{"SYMBOLID":"S*G*IMG---*****","DESCRIPTION":"Armament Production","MAPPING1U":"1922","MAPPING1F":"1922","MAPPING1N":"1922","MAPPING1H":"1922"},{"SYMBOLID":"S*G*IMV---*****","DESCRIPTION":"Military Vehicle Production","MAPPING1U":"1923","MAPPING1F":"1923","MAPPING1N":"1923","MAPPING1H":"1923"},{"SYMBOLID":"S*G*IMN---*****","DESCRIPTION":"Engineering Equipment Production","MAPPING1U":"1924","MAPPING1F":"1924","MAPPING1N":"1924","MAPPING1H":"1924"},{"SYMBOLID":"S*G*IMNB--*****","DESCRIPTION":"Engineering Equipment Production Bridge","MAPPING1U":"1925","MAPPING1F":"1925","MAPPING1N":"1925","MAPPING1H":"1925"},{"SYMBOLID":"S*G*IMC---*****","DESCRIPTION":"Chemical & Biological Warfare Production","MAPPING1U":"1926","MAPPING1F":"1926","MAPPING1N":"1926","MAPPING1H":"1926"},{"SYMBOLID":"S*G*IMS---*****","DESCRIPTION":"Ship Construction","MAPPING1U":"1927","MAPPING1F":"1927","MAPPING1N":"1927","MAPPING1H":"1927"},{"SYMBOLID":"S*G*IMM---*****","DESCRIPTION":"Missile & Space System Production","MAPPING1U":"1928","MAPPING1F":"1928","MAPPING1N":"1928","MAPPING1H":"1928"},{"SYMBOLID":"S*G*IG----*****","DESCRIPTION":"Government Leadership","MAPPING1U":"1929","MAPPING1F":"1929","MAPPING1N":"1929","MAPPING1H":"1929"},{"SYMBOLID":"S*G*IB----*****","DESCRIPTION":"Military Base/Facility","MAPPING1U":"1930","MAPPING1F":"1930","MAPPING1N":"1930","MAPPING1H":"1930"},{"SYMBOLID":"S*G*IBA---*****","DESCRIPTION":"Airport/Airbase","MAPPING1U":"1931","MAPPING1F":"1931","MAPPING1N":"1931","MAPPING1H":"1931"},{"SYMBOLID":"S*G*IBN---*****","DESCRIPTION":"Seaport/Naval Base","MAPPING1U":"1932","MAPPING1F":"1932","MAPPING1N":"1932","MAPPING1H":"1932"},{"SYMBOLID":"S*G*IT----*****","DESCRIPTION":"Transport Facility","MAPPING1U":"1933","MAPPING1F":"1933","MAPPING1N":"1933","MAPPING1H":"1933"},{"SYMBOLID":"S*G*IX----*****","DESCRIPTION":"Medical Facility","MAPPING1U":"660","MAPPING1F":"661","MAPPING1N":"662","MAPPING1H":"663"},{"SYMBOLID":"S*G*IXH---*****","DESCRIPTION":"Hospital","MAPPING1U":"660","MAPPING1F":"661","MAPPING1N":"662","MAPPING1H":"663","MAPPING2":"1935","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*G*IC----*****","DESCRIPTION":"Tented Camp","MAPPING1U":"1891","MAPPING1F":"1891","MAPPING1N":"1891","MAPPING1H":"1891"},{"SYMBOLID":"S*G*ICD---*****","DESCRIPTION":"Tented Camp, Displaced Persons/Refugees","MAPPING1U":"1892","MAPPING1F":"1892","MAPPING1N":"1892","MAPPING1H":"1892"},{"SYMBOLID":"S*G*ICT---*****","DESCRIPTION":"Tented Training Camp","MAPPING1U":"1893","MAPPING1F":"1893","MAPPING1N":"1893","MAPPING1H":"1893"},{"SYMBOLID":"S*G*IW----*****","DESCRIPTION":"Warehouse/Storage Facility","MAPPING1U":"1895","MAPPING1F":"1895","MAPPING1N":"1895","MAPPING1H":"1895"},{"SYMBOLID":"S*S*------*****","DESCRIPTION":"Sea Surface Track"},{"SYMBOLID":"S*S*C-----*****","DESCRIPTION":"Sea Surface Track Combatant","MAPPING1U":"1936","MAPPING1F":"1936","MAPPING1N":"1936","MAPPING1H":"1936","MAPPING2":"1937","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*CL----*****","DESCRIPTION":"Line","MAPPING1U":"1938","MAPPING1F":"1938","MAPPING1N":"1938","MAPPING1H":"1938"},{"SYMBOLID":"S*S*CLCV--*****","DESCRIPTION":"Carrier","MAPPING1U":"1939","MAPPING1F":"1939","MAPPING1N":"1939","MAPPING1H":"1939"},{"SYMBOLID":"S*S*CLBB--*****","DESCRIPTION":"Battleship","MAPPING1U":"1940","MAPPING1F":"1940","MAPPING1N":"1940","MAPPING1H":"1940"},{"SYMBOLID":"S*S*CLCC--*****","DESCRIPTION":"Cruiser","MAPPING1U":"1941","MAPPING1F":"1941","MAPPING1N":"1941","MAPPING1H":"1941"},{"SYMBOLID":"S*S*CLDD--*****","DESCRIPTION":"Destroyer","MAPPING1U":"1942","MAPPING1F":"1942","MAPPING1N":"1942","MAPPING1H":"1942"},{"SYMBOLID":"S*S*CLFF--*****","DESCRIPTION":"Frigate/Corvette","MAPPING1U":"1943","MAPPING1F":"1943","MAPPING1N":"1943","MAPPING1H":"1943"},{"SYMBOLID":"S*S*CLLL--*****","DESCRIPTION":"Littoral Combatant","MAPPING1U":"1944","MAPPING1F":"1944","MAPPING1N":"1944","MAPPING1H":"1944"},{"SYMBOLID":"S*S*CLLLAS*****","DESCRIPTION":"Antisubmarine Warfare Mission Package","MAPPING1U":"1945","MAPPING1F":"1945","MAPPING1N":"1945","MAPPING1H":"1945"},{"SYMBOLID":"S*S*CLLLMI*****","DESCRIPTION":"Mine Warfare Mission Package","MAPPING1U":"1946","MAPPING1F":"1946","MAPPING1N":"1946","MAPPING1H":"1946"},{"SYMBOLID":"S*S*CLLLSU*****","DESCRIPTION":"Surface Warfare (SUW) Mission Package","MAPPING1U":"1947","MAPPING1F":"1947","MAPPING1N":"1947","MAPPING1H":"1947"},{"SYMBOLID":"S*S*CA----*****","DESCRIPTION":"Amphibious Warfare Ship","MAPPING1U":"1948","MAPPING1F":"1948","MAPPING1N":"1948","MAPPING1H":"1948"},{"SYMBOLID":"S*S*CALA--*****","DESCRIPTION":"Assault Vessel","MAPPING1U":"1949","MAPPING1F":"1949","MAPPING1N":"1949","MAPPING1H":"1949"},{"SYMBOLID":"S*S*CALS--*****","DESCRIPTION":"Landing Ship","MAPPING1U":"1950","MAPPING1F":"1950","MAPPING1N":"1950","MAPPING1H":"1950"},{"SYMBOLID":"S*S*CALSM-*****","DESCRIPTION":"Landing Ship Medium","MAPPING1U":"1951","MAPPING1F":"1951","MAPPING1N":"1951","MAPPING1H":"1951"},{"SYMBOLID":"S*S*CALST-*****","DESCRIPTION":"Landing Ship Tank","MAPPING1U":"1952","MAPPING1F":"1952","MAPPING1N":"1952","MAPPING1H":"1952"},{"SYMBOLID":"S*S*CALC--*****","DESCRIPTION":"Landing Craft","MAPPING1U":"1953","MAPPING1F":"1953","MAPPING1N":"1953","MAPPING1H":"1953"},{"SYMBOLID":"S*S*CM----*****","DESCRIPTION":"Mine Warfare Vessel","MAPPING1U":"1954","MAPPING1F":"1954","MAPPING1N":"1954","MAPPING1H":"1954"},{"SYMBOLID":"S*S*CMML--*****","DESCRIPTION":"Minelayer","MAPPING1U":"1955","MAPPING1F":"1955","MAPPING1N":"1955","MAPPING1H":"1955"},{"SYMBOLID":"S*S*CMMS--*****","DESCRIPTION":"Minesweeper","MAPPING1U":"1956","MAPPING1F":"1956","MAPPING1N":"1956","MAPPING1H":"1956"},{"SYMBOLID":"S*S*CMMH--*****","DESCRIPTION":"Minehunter","MAPPING1U":"1957","MAPPING1F":"1957","MAPPING1N":"1957","MAPPING1H":"1957"},{"SYMBOLID":"S*S*CMMA--*****","DESCRIPTION":"MCM Support","MAPPING1U":"1958","MAPPING1F":"1958","MAPPING1N":"1958","MAPPING1H":"1958"},{"SYMBOLID":"S*S*CP----*****","DESCRIPTION":"Sea Surface Combatant Patrol","MAPPING1U":"1959","MAPPING1F":"1959","MAPPING1N":"1959","MAPPING1H":"1959"},{"SYMBOLID":"S*S*CPSB--*****","DESCRIPTION":"Antisubmarine Warfare","MAPPING1U":"1960","MAPPING1F":"1960","MAPPING1N":"1960","MAPPING1H":"1960"},{"SYMBOLID":"S*S*CPSU--*****","DESCRIPTION":"Antisurface Warfare","MAPPING1U":"1961","MAPPING1F":"1961","MAPPING1N":"1961","MAPPING1H":"1961"},{"SYMBOLID":"S*S*CPSUM-*****","DESCRIPTION":"Anti-Ship Missile","MAPPING1U":"1962","MAPPING1F":"1962","MAPPING1N":"1962","MAPPING1H":"1962"},{"SYMBOLID":"S*S*CPSUT-*****","DESCRIPTION":"Torpedo(Antisurface Warfare)","MAPPING1U":"1963","MAPPING1F":"1963","MAPPING1N":"1963","MAPPING1H":"1963"},{"SYMBOLID":"S*S*CPSUG-*****","DESCRIPTION":"Antisurface Warfare Gun","MAPPING1U":"1964","MAPPING1F":"1964","MAPPING1N":"1964","MAPPING1H":"1964"},{"SYMBOLID":"S*S*CH----*****","DESCRIPTION":"Combatant Hovercraft","MAPPING1U":"1965","MAPPING1F":"1965","MAPPING1N":"1965","MAPPING1H":"1965"},{"SYMBOLID":"S*S*S-----*****","DESCRIPTION":"Sea Surface Station","MAPPING1U":"1966","MAPPING1F":"1966","MAPPING1N":"1966","MAPPING1H":"1966"},{"SYMBOLID":"S*S*SP----*****","DESCRIPTION":"Picket","MAPPING1U":"1967","MAPPING1F":"1967","MAPPING1N":"1967","MAPPING1H":"1967"},{"SYMBOLID":"S*S*SA----*****","DESCRIPTION":"ASW Ship","MAPPING1U":"1968","MAPPING1F":"1968","MAPPING1N":"1968","MAPPING1H":"1968"},{"SYMBOLID":"S*S*G-----*****","DESCRIPTION":"Navy Group","MAPPING1U":"1969","MAPPING1F":"1969","MAPPING1N":"1969","MAPPING1H":"1969"},{"SYMBOLID":"S*S*GT----*****","DESCRIPTION":"Navy Task Force","MAPPING1U":"1970","MAPPING1F":"1970","MAPPING1N":"1970","MAPPING1H":"1970"},{"SYMBOLID":"S*S*GG----*****","DESCRIPTION":"Navy Task Group","MAPPING1U":"1971","MAPPING1F":"1971","MAPPING1N":"1971","MAPPING1H":"1971"},{"SYMBOLID":"S*S*GU----*****","DESCRIPTION":"Navy Task Unit","MAPPING1U":"1972","MAPPING1F":"1972","MAPPING1N":"1972","MAPPING1H":"1972"},{"SYMBOLID":"S*S*GC----*****","DESCRIPTION":"Convoy","MAPPING1U":"1973","MAPPING1F":"1973","MAPPING1N":"1973","MAPPING1H":"1973"},{"SYMBOLID":"S*S*CD----*****","DESCRIPTION":"Surface Decoy","MAPPING1U":"1974","MAPPING1F":"1974","MAPPING1N":"1974","MAPPING1H":"1974"},{"SYMBOLID":"S*S*CU----*****","DESCRIPTION":"Unmanned Surface Vehicle (USV)","MAPPING1U":"1975","MAPPING1F":"1975","MAPPING1N":"1975","MAPPING1H":"1975"},{"SYMBOLID":"S*S*CUM---*****","DESCRIPTION":"USV Mine Countermeasures","MAPPING1U":"1976","MAPPING1F":"1976","MAPPING1N":"1976","MAPPING1H":"1976"},{"SYMBOLID":"S*S*CUS---*****","DESCRIPTION":"USV Antisubmarine Warfare","MAPPING1U":"1977","MAPPING1F":"1977","MAPPING1N":"1977","MAPPING1H":"1977"},{"SYMBOLID":"S*S*CUN---*****","DESCRIPTION":"USV Antisurface Warfare","MAPPING1U":"1978","MAPPING1F":"1978","MAPPING1N":"1978","MAPPING1H":"1978"},{"SYMBOLID":"S*S*CUR---*****","DESCRIPTION":"USV Remote Multimission Vehicle","MAPPING1U":"1979","MAPPING1F":"1979","MAPPING1N":"1979","MAPPING1H":"1979"},{"SYMBOLID":"S*S*N-----*****","DESCRIPTION":"Noncombatant","MAPPING1U":"1980","MAPPING1F":"1980","MAPPING1N":"1980","MAPPING1H":"1980"},{"SYMBOLID":"S*S*NR----*****","DESCRIPTION":"Underway Replenishment","MAPPING1U":"1981","MAPPING1F":"1981","MAPPING1N":"1981","MAPPING1H":"1981"},{"SYMBOLID":"S*S*NF----*****","DESCRIPTION":"Fleet Support","MAPPING1U":"1982","MAPPING1F":"1982","MAPPING1N":"1982","MAPPING1H":"1982"},{"SYMBOLID":"S*S*NI----*****","DESCRIPTION":"Intelligence","MAPPING1U":"1983","MAPPING1F":"1983","MAPPING1N":"1983","MAPPING1H":"1983"},{"SYMBOLID":"S*S*NS----*****","DESCRIPTION":"Service & Support Harbor","MAPPING1U":"1984","MAPPING1F":"1984","MAPPING1N":"1984","MAPPING1H":"1984"},{"SYMBOLID":"S*S*NM----*****","DESCRIPTION":"Hospital Ship","MAPPING1U":"1985","MAPPING1F":"1985","MAPPING1N":"1985","MAPPING1H":"1985"},{"SYMBOLID":"S*S*NH----*****","DESCRIPTION":"Noncombatant Hovercraft","MAPPING1U":"1986","MAPPING1F":"1986","MAPPING1N":"1986","MAPPING1H":"1986","MAPPING2":"1987","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*NN----*****","DESCRIPTION":"Noncombatant Station","MAPPING1U":"1988","MAPPING1F":"1988","MAPPING1N":"1988","MAPPING1H":"1988"},{"SYMBOLID":"S*S*NNR---*****","DESCRIPTION":"Rescue","MAPPING1U":"1989","MAPPING1F":"1989","MAPPING1N":"1989","MAPPING1H":"1989"},{"SYMBOLID":"S*S*X-----*****","DESCRIPTION":"Non-Military"},{"SYMBOLID":"S*S*XM----*****","DESCRIPTION":"Merchant","MAPPING1U":"1990","MAPPING1F":"1990","MAPPING1N":"1990","MAPPING1H":"1990","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMC---*****","DESCRIPTION":"Subsurface Non-military Cargo","MAPPING1U":"1992","MAPPING1F":"1992","MAPPING1N":"1992","MAPPING1H":"1992","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMR---*****","DESCRIPTION":"Roll On/Roll Off","MAPPING1U":"1993","MAPPING1F":"1993","MAPPING1N":"1993","MAPPING1H":"1993","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMO---*****","DESCRIPTION":"Oiler/Tanker","MAPPING1U":"1994","MAPPING1F":"1994","MAPPING1N":"1994","MAPPING1H":"1994","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMTU--*****","DESCRIPTION":"Tug","MAPPING1U":"1995","MAPPING1F":"1995","MAPPING1N":"1995","MAPPING1H":"1995","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMF---*****","DESCRIPTION":"Ferry","MAPPING1U":"1996","MAPPING1F":"1996","MAPPING1N":"1996","MAPPING1H":"1996","MAPPING1COLOR":"#000000","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMP---*****","DESCRIPTION":"Passenger","MAPPING1U":"1997","MAPPING1F":"1997","MAPPING1N":"1997","MAPPING1H":"1997","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMH---*****","DESCRIPTION":"Hazardous Materials (HAZMAT)","MAPPING1U":"1998","MAPPING1F":"1998","MAPPING1N":"1998","MAPPING1H":"1998","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XMTO--*****","DESCRIPTION":"Towing Vessel","MAPPING1U":"1999","MAPPING1F":"1999","MAPPING1N":"1999","MAPPING1H":"1999","MAPPING2":"1991","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XF----*****","DESCRIPTION":"Fishing","MAPPING1U":"2000","MAPPING1F":"2000","MAPPING1N":"2000","MAPPING1H":"2000","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFDF--*****","DESCRIPTION":"Drifter","MAPPING1U":"2002","MAPPING1F":"2002","MAPPING1N":"2002","MAPPING1H":"2002","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFDR--*****","DESCRIPTION":"Dredge","MAPPING1U":"2003","MAPPING1F":"2003","MAPPING1N":"2003","MAPPING1H":"2003","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XFTR--*****","DESCRIPTION":"Trawler","MAPPING1U":"2004","MAPPING1F":"2004","MAPPING1N":"2004","MAPPING1H":"2004","MAPPING2":"2001","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XR----*****","DESCRIPTION":"Leisure Craft","MAPPING1U":"2005","MAPPING1F":"2005","MAPPING1N":"2005","MAPPING1H":"2005","MAPPING2":"2006","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XL----*****","DESCRIPTION":"Law Enforcement Vessel","MAPPING1U":"2007","MAPPING1F":"2007","MAPPING1N":"2007","MAPPING1H":"2007","MAPPING2":"2008","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*XH----*****","DESCRIPTION":"Non-military Hovercraft","MAPPING1U":"2009","MAPPING1F":"2009","MAPPING1N":"2009","MAPPING1H":"2009","MAPPING2":"2010","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*S*O-----*****","DESCRIPTION":"Own Track"},{"SYMBOLID":"S*U*------*****","DESCRIPTION":"Subsurface Track"},{"SYMBOLID":"S*U*S-----*****","DESCRIPTION":"Submarine","MAPPING1U":"2017","MAPPING1F":"2017","MAPPING1N":"2017","MAPPING1H":"2017"},{"SYMBOLID":"S*U*SN----*****","DESCRIPTION":"Nuclear Propulsion","MAPPING1U":"2022","MAPPING1F":"2022","MAPPING1N":"2022","MAPPING1H":"2022"},{"SYMBOLID":"S*U*SNF---*****","DESCRIPTION":"Submarine Nuclear Surfaced","MAPPING1U":"2023","MAPPING1F":"2023","MAPPING1N":"2023","MAPPING1H":"2023"},{"SYMBOLID":"S*U*SNA---*****","DESCRIPTION":"Submarine Nuclear Attack (SSN)","MAPPING1U":"2024","MAPPING1F":"2024","MAPPING1N":"2024","MAPPING1H":"2024","MAPPING2":"2025","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNM---*****","DESCRIPTION":"Submarine Nuclear Missile Type Unknown","MAPPING1U":"2026","MAPPING1F":"2026","MAPPING1N":"2026","MAPPING1H":"2026","MAPPING2":"2027","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNG---*****","DESCRIPTION":"Submarine Nuclear Guided Missile (SSGN)","MAPPING1U":"2028","MAPPING1F":"2028","MAPPING1N":"2028","MAPPING1H":"2028","MAPPING2":"2029","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SNB---*****","DESCRIPTION":"Ballistic Missile Submarine (SSB)","MAPPING1U":"2030","MAPPING1F":"2030","MAPPING1N":"2030","MAPPING1H":"2030","MAPPING2":"2031","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SC----*****","DESCRIPTION":"Conventional Propulsion","MAPPING1U":"2032","MAPPING1F":"2032","MAPPING1N":"2032","MAPPING1H":"2032"},{"SYMBOLID":"S*U*SCF---*****","DESCRIPTION":"Conventional Propulsion Surfaced","MAPPING1U":"2033","MAPPING1F":"2033","MAPPING1N":"2033","MAPPING1H":"2033"},{"SYMBOLID":"S*U*SCA---*****","DESCRIPTION":"Attack Submarine (SS)","MAPPING1U":"2034","MAPPING1F":"2034","MAPPING1N":"2034","MAPPING1H":"2034","MAPPING2":"2035","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCM---*****","DESCRIPTION":"Conventional Propulsion Missile Submarine (TYPE UNKNOWN)","MAPPING1U":"2036","MAPPING1F":"2036","MAPPING1N":"2036","MAPPING1H":"2036","MAPPING2":"2037","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCG---*****","DESCRIPTION":"Guided Missile Submarine (SSG)","MAPPING1U":"2038","MAPPING1F":"2038","MAPPING1N":"2038","MAPPING1H":"2038","MAPPING2":"2039","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SCB---*****","DESCRIPTION":"Conventional Propulsion Ballistic Missile (SSB)","MAPPING1U":"2040","MAPPING1F":"2040","MAPPING1N":"2040","MAPPING1H":"2040","MAPPING2":"2041","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*U*SO----*****","DESCRIPTION":"Other Submersible","MAPPING1U":"2042","MAPPING1F":"2042","MAPPING1N":"2042","MAPPING1H":"2042"},{"SYMBOLID":"S*U*SOF---*****","DESCRIPTION":"Other Submersible Surfaced","MAPPING1U":"2043","MAPPING1F":"2043","MAPPING1N":"2043","MAPPING1H":"2043"},{"SYMBOLID":"S*U*SU----*****","DESCRIPTION":"Unmanned Underwater Vehicle (UUV)","MAPPING1U":"2046","MAPPING1F":"2046","MAPPING1N":"2046","MAPPING1H":"2046"},{"SYMBOLID":"S*U*SUM---*****","DESCRIPTION":"UUV Mine Warfare","MAPPING1U":"2047","MAPPING1F":"2047","MAPPING1N":"2047","MAPPING1H":"2047"},{"SYMBOLID":"S*U*SUS---*****","DESCRIPTION":"UUV Antisubmarine Warfare","MAPPING1U":"2048","MAPPING1F":"2048","MAPPING1N":"2048","MAPPING1H":"2048"},{"SYMBOLID":"S*U*SUN---*****","DESCRIPTION":"UUV Antisurface Warfare","MAPPING1U":"2049","MAPPING1F":"2049","MAPPING1N":"2049","MAPPING1H":"2049"},{"SYMBOLID":"S*U*SF----*****","DESCRIPTION":"Submarine Surfaced","MAPPING1U":"2018","MAPPING1F":"2018","MAPPING1N":"2018","MAPPING1H":"2018"},{"SYMBOLID":"S*U*SB----*****","DESCRIPTION":"Submarine Bottomed","MAPPING1U":"2019","MAPPING1F":"2019","MAPPING1N":"2019","MAPPING1H":"2019"},{"SYMBOLID":"S*U*SR----*****","DESCRIPTION":"Submarine Certsub","MAPPING1U":"2020","MAPPING1F":"2020","MAPPING1N":"2020","MAPPING1H":"2020"},{"SYMBOLID":"S*U*SX----*****","DESCRIPTION":"Non Submarine","MAPPING1U":"2021","MAPPING1F":"2021","MAPPING1N":"2021","MAPPING1H":"2021"},{"SYMBOLID":"S*U*S1----*****","DESCRIPTION":"Possub-1","MAPPING1U":"2050","MAPPING1F":"2050","MAPPING1N":"2050","MAPPING1H":"2050"},{"SYMBOLID":"S*U*S2----*****","DESCRIPTION":"Possub-2","MAPPING1U":"2051","MAPPING1F":"2051","MAPPING1N":"2051","MAPPING1H":"2051"},{"SYMBOLID":"S*U*S3----*****","DESCRIPTION":"Possub-3","MAPPING1U":"2052","MAPPING1F":"2052","MAPPING1N":"2052","MAPPING1H":"2052"},{"SYMBOLID":"S*U*S4----*****","DESCRIPTION":"Possub-4","MAPPING1U":"2053","MAPPING1F":"2053","MAPPING1N":"2053","MAPPING1H":"2053"},{"SYMBOLID":"S*U*SL----*****","DESCRIPTION":"ProbSub","MAPPING1U":"2054","MAPPING1F":"2054","MAPPING1N":"2054","MAPPING1H":"2054"},{"SYMBOLID":"S*U*SK----*****","DESCRIPTION":"Snorkeling","MAPPING1U":"2055","MAPPING1F":"2055","MAPPING1N":"2055","MAPPING1H":"2055"},{"SYMBOLID":"S*U*W-----*****","DESCRIPTION":"Underwater Weapon","MAPPING1U":"2056","MAPPING1F":"2056","MAPPING1N":"2056","MAPPING1H":"2056"},{"SYMBOLID":"S*U*WT----*****","DESCRIPTION":"Torpedo","MAPPING1U":"2057","MAPPING1F":"2057","MAPPING1N":"2057","MAPPING1H":"2057"},{"SYMBOLID":"S*U*WM----*****","DESCRIPTION":"Sea Mine","MAPPING1U":"2058","MAPPING1F":"2058","MAPPING1N":"2058","MAPPING1H":"2058","MAPPING2":"2059","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMD---*****","DESCRIPTION":"Sea Mine Neutralized","MAPPING1U":"2060","MAPPING1F":"2060","MAPPING1N":"2060","MAPPING1H":"2060","MAPPING2":"2059","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMG---*****","DESCRIPTION":"Sea Mine (Ground)","MAPPING1U":"2061","MAPPING1F":"2061","MAPPING1N":"2061","MAPPING1H":"2061","MAPPING2":"2062","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMGD--*****","DESCRIPTION":"Sea Mine (Ground) Neutralized","MAPPING1U":"2063","MAPPING1F":"2063","MAPPING1N":"2063","MAPPING1H":"2063","MAPPING2":"2064","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMGX--*****","DESCRIPTION":"Ground (Bottom) Excercise Mine","MAPPING1U":"2065","MAPPING1F":"2065","MAPPING1N":"2065","MAPPING1H":"2065","MAPPING2":"2062","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMGE--*****","DESCRIPTION":"Ground (Bottom) MILEC","MAPPING1U":"2066","MAPPING1F":"2066","MAPPING1N":"2066","MAPPING1H":"2066","MAPPING2":"2070","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMGC--*****","DESCRIPTION":"Ground (Bottom) MILCO","MAPPING1U":"2067","MAPPING1F":"2067","MAPPING1N":"2067","MAPPING1H":"2067","MAPPING2":"2070","MAPPING2COLOR":"FFA500"},{"SYMBOLID":"S*U*WMGR--*****","DESCRIPTION":"Ground (Bottom) Negative Reacquisition","MAPPING1U":"2068","MAPPING1F":"2068","MAPPING1N":"2068","MAPPING1H":"2068","MAPPING2":"2070","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMGO--*****","DESCRIPTION":"Ground (Bottom) Non-Mine Mike-Like Contact","MAPPING1U":"2069","MAPPING1F":"2069","MAPPING1N":"2069","MAPPING1H":"2069","MAPPING2":"2070","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMM---*****","DESCRIPTION":"Sea Mine (Moored)","MAPPING1U":"2072","MAPPING1F":"2072","MAPPING1N":"2072","MAPPING1H":"2072","MAPPING2":"2073","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMMD--*****","DESCRIPTION":"Sea Mine (Moored) Neutralized","MAPPING1U":"2074","MAPPING1F":"2074","MAPPING1N":"2074","MAPPING1H":"2074","MAPPING2":"2075","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMMX--*****","DESCRIPTION":"Moored Exercise Mine","MAPPING1U":"2076","MAPPING1F":"2076","MAPPING1N":"2076","MAPPING1H":"2076","MAPPING2":"2073","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMME--*****","DESCRIPTION":"Moored MILEC","MAPPING1U":"2077","MAPPING1F":"2077","MAPPING1N":"2077","MAPPING1H":"2077","MAPPING2":"2081","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMMC--*****","DESCRIPTION":"Moored MILCO","MAPPING1U":"2078","MAPPING1F":"2078","MAPPING1N":"2078","MAPPING1H":"2078","MAPPING2":"2081","MAPPING2COLOR":"FFA500"},{"SYMBOLID":"S*U*WMMR--*****","DESCRIPTION":"Moored Negative Reacquisition","MAPPING1U":"2079","MAPPING1F":"2079","MAPPING1N":"2079","MAPPING1H":"2079","MAPPING2":"2081","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMMO--*****","DESCRIPTION":"Moored Non-Mine Mine-Like Object","MAPPING1U":"2080","MAPPING1F":"2080","MAPPING1N":"2080","MAPPING1H":"2080","MAPPING2":"2081","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMF---*****","DESCRIPTION":"Sea Mine (Floating)","MAPPING1U":"2083","MAPPING1F":"2083","MAPPING1N":"2083","MAPPING1H":"2083","MAPPING2":"2084","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMFD--*****","DESCRIPTION":"Sea Mine (Floating) Neutralized","MAPPING1U":"2085","MAPPING1F":"2085","MAPPING1N":"2085","MAPPING1H":"2085","MAPPING2":"2086","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMFX--*****","DESCRIPTION":"Floating Exercise Mine","MAPPING1U":"2087","MAPPING1F":"2087","MAPPING1N":"2087","MAPPING1H":"2087","MAPPING2":"2084","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMFE--*****","DESCRIPTION":"Floating MILEC","MAPPING1U":"2088","MAPPING1F":"2088","MAPPING1N":"2088","MAPPING1H":"2088","MAPPING2":"2092","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMFC--*****","DESCRIPTION":"Floating MILCO","MAPPING1U":"2089","MAPPING1F":"2089","MAPPING1N":"2089","MAPPING1H":"2089","MAPPING2":"2092","MAPPING2COLOR":"FFA500"},{"SYMBOLID":"S*U*WMFR--*****","DESCRIPTION":"Floating Negative Reacquisition","MAPPING1U":"2090","MAPPING1F":"2090","MAPPING1N":"2090","MAPPING1H":"2090","MAPPING2":"2092","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMFO--*****","DESCRIPTION":"Floating Non-Mine Mine-Like Contact","MAPPING1U":"2091","MAPPING1F":"2091","MAPPING1N":"2091","MAPPING1H":"2091","MAPPING2":"2092","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMO---*****","DESCRIPTION":"Sea Mine (Other Position)","MAPPING1U":"2093","MAPPING1F":"2093","MAPPING1N":"2093","MAPPING1H":"2093","MAPPING2":"2094","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMOD--*****","DESCRIPTION":"Sea Mine (Other Position) Neutralized","MAPPING1U":"2095","MAPPING1F":"2095","MAPPING1N":"2095","MAPPING1H":"2095","MAPPING2":"2094","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMX---*****","DESCRIPTION":"General Exercise Mine","MAPPING1U":"2096","MAPPING1F":"2096","MAPPING1N":"2096","MAPPING1H":"2096","MAPPING2":"2094","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WME---*****","DESCRIPTION":"General MILEC","MAPPING1U":"2097","MAPPING1F":"2097","MAPPING1N":"2097","MAPPING1H":"2097","MAPPING2":"2104","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMA---*****","DESCRIPTION":"General Mine Anchor","MAPPING1U":"2098","MAPPING1F":"2098","MAPPING1N":"2098","MAPPING1H":"2098","MAPPING2":"2104","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMC---*****","DESCRIPTION":"General MILCO","MAPPING1U":"2099","MAPPING1F":"2099","MAPPING1N":"2099","MAPPING1H":"2099","MAPPING2":"2104","MAPPING2COLOR":"FFA500"},{"SYMBOLID":"S*U*WMR---*****","DESCRIPTION":"General Negative Reacquisition","MAPPING1U":"2100","MAPPING1F":"2100","MAPPING1N":"2100","MAPPING1H":"2100","MAPPING2":"2104","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMB---*****","DESCRIPTION":"General Obstructor","MAPPING1U":"2101","MAPPING1F":"2101","MAPPING1N":"2101","MAPPING1H":"2101","MAPPING2":"2104","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"S*U*WMBD--*****","DESCRIPTION":"General Obstructor Neutralized","MAPPING1U":"2102","MAPPING1F":"2102","MAPPING1N":"2102","MAPPING1H":"2102","MAPPING2":"2104","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WMN---*****","DESCRIPTION":"General Non-Mine Mine-Like Object","MAPPING1U":"2103","MAPPING1F":"2103","MAPPING1N":"2103","MAPPING1H":"2103","MAPPING2":"2104","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMS---*****","DESCRIPTION":"Rising Mine","MAPPING1U":"2106","MAPPING1F":"2106","MAPPING1N":"2106","MAPPING1H":"2106","MAPPING2":"2105","MAPPING2COLOR":"FF0000"},{"SYMBOLID":"S*U*WMSX--*****","DESCRIPTION":"Rising Exercise Mine","MAPPING1U":"2107","MAPPING1F":"2107","MAPPING1N":"2107","MAPPING1H":"2107","MAPPING2":"2105","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WMSD--*****","DESCRIPTION":"Rising Mine Neutralized","MAPPING1U":"2108","MAPPING1F":"2108","MAPPING1N":"2108","MAPPING1H":"2108","MAPPING2":"2105","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*WD----*****","DESCRIPTION":"Underwater Decoy","MAPPING1U":"2113","MAPPING1F":"2113","MAPPING1N":"2113","MAPPING1H":"2113"},{"SYMBOLID":"S*U*WDM---*****","DESCRIPTION":"Sea Mine Decoy","MAPPING1U":"2114","MAPPING1F":"2114","MAPPING1N":"2114","MAPPING1H":"2114","MAPPING2":"2115","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WDMG--*****","DESCRIPTION":"Ground (Bottom) Decoy","MAPPING1U":"2116","MAPPING1F":"2116","MAPPING1N":"2116","MAPPING1H":"2116","MAPPING2":"2117","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*WDMM--*****","DESCRIPTION":"Moored Decoy","MAPPING1U":"2118","MAPPING1F":"2118","MAPPING1N":"2118","MAPPING1H":"2118","MAPPING2":"2119","MAPPING2COLOR":"008000"},{"SYMBOLID":"S*U*N-----*****","DESCRIPTION":"Non-Submarine"},{"SYMBOLID":"S*U*ND----*****","DESCRIPTION":"Diver","MAPPING1U":"2120","MAPPING1F":"2120","MAPPING1N":"2120","MAPPING1H":"2120"},{"SYMBOLID":"S*U*E-----*****","DESCRIPTION":"Environmental Report Location","MAPPING2":"2124","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*V-----*****","DESCRIPTION":"Dive Report Location","MAPPING2":"2125","MAPPING2COLOR":"00FF00"},{"SYMBOLID":"S*U*X-----*****","DESCRIPTION":"Unexploded Ordnance Area (Subsurface)","MAPPING2":"2126","MAPPING2COLOR":"#FF0000"},{"SYMBOLID":"S*F*------*****","DESCRIPTION":"Special Operations Forces (SOF) Unit","MAPPING1U":"2131","MAPPING1F":"2131","MAPPING1N":"2131","MAPPING1H":"2131"},{"SYMBOLID":"S*F*A-----*****","DESCRIPTION":"SOF Unit Aviation","MAPPING1U":"2132","MAPPING1F":"2132","MAPPING1N":"2132","MAPPING1H":"2132"},{"SYMBOLID":"S*F*AF----*****","DESCRIPTION":"SOF Unit Fixed Wing","MAPPING1U":"2133","MAPPING1F":"2133","MAPPING1N":"2133","MAPPING1H":"2133"},{"SYMBOLID":"S*F*AFA---*****","DESCRIPTION":"SOF Unit Fixed Wing Attack","MAPPING1U":"2134","MAPPING1F":"2134","MAPPING1N":"2134","MAPPING1H":"2134"},{"SYMBOLID":"S*F*AFK---*****","DESCRIPTION":"SOF Unit Refuel","MAPPING1U":"2135","MAPPING1F":"2135","MAPPING1N":"2135","MAPPING1H":"2135"},{"SYMBOLID":"S*F*AFU---*****","DESCRIPTION":"SOF Unit Fixed Wing Utility","MAPPING1U":"2136","MAPPING1F":"2136","MAPPING1N":"2136","MAPPING1H":"2136"},{"SYMBOLID":"S*F*AFUL--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Light)","MAPPING1U":"2137","MAPPING1F":"2137","MAPPING1N":"2137","MAPPING1H":"2137"},{"SYMBOLID":"S*F*AFUM--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Medium)","MAPPING1U":"2138","MAPPING1F":"2138","MAPPING1N":"2138","MAPPING1H":"2138"},{"SYMBOLID":"S*F*AFUH--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Heavy)","MAPPING1U":"2139","MAPPING1F":"2139","MAPPING1N":"2139","MAPPING1H":"2139"},{"SYMBOLID":"S*F*AV----*****","DESCRIPTION":"SOF Unit V/STOL","MAPPING1U":"2140","MAPPING1F":"2140","MAPPING1N":"2140","MAPPING1H":"2140"},{"SYMBOLID":"S*F*AH----*****","DESCRIPTION":"SOF Unit Rotary Wing","MAPPING1U":"2141","MAPPING1F":"2141","MAPPING1N":"2141","MAPPING1H":"2141"},{"SYMBOLID":"S*F*AHH---*****","DESCRIPTION":"SOF Unit Rotary Wing Combat Search & Rescue","MAPPING1U":"2142","MAPPING1F":"2142","MAPPING1N":"2142","MAPPING1H":"2142"},{"SYMBOLID":"S*F*AHA---*****","DESCRIPTION":"SOF Unit Rotary Wing Attack","MAPPING1U":"2143","MAPPING1F":"2143","MAPPING1N":"2143","MAPPING1H":"2143"},{"SYMBOLID":"S*F*AHU---*****","DESCRIPTION":"SOF Unit Rotary Wing Utility","MAPPING1U":"2144","MAPPING1F":"2144","MAPPING1N":"2144","MAPPING1H":"2144"},{"SYMBOLID":"S*F*AHUL--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Light)","MAPPING1U":"2145","MAPPING1F":"2145","MAPPING1N":"2145","MAPPING1H":"2145"},{"SYMBOLID":"S*F*AHUM--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Medium)","MAPPING1U":"2146","MAPPING1F":"2146","MAPPING1N":"2146","MAPPING1H":"2146"},{"SYMBOLID":"S*F*AHUH--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Heavy)","MAPPING1U":"2147","MAPPING1F":"2147","MAPPING1N":"2147","MAPPING1H":"2147"},{"SYMBOLID":"S*F*N-----*****","DESCRIPTION":"SOF Unit SOF Unit Naval","MAPPING1U":"2148","MAPPING1F":"2148","MAPPING1N":"2148","MAPPING1H":"2148"},{"SYMBOLID":"S*F*NS----*****","DESCRIPTION":"SOF Unit Seal","MAPPING1U":"2149","MAPPING1F":"2149","MAPPING1N":"2149","MAPPING1H":"2149"},{"SYMBOLID":"S*F*NU----*****","DESCRIPTION":"SOF Unit Underwater Demolition Team","MAPPING1U":"2150","MAPPING1F":"2150","MAPPING1N":"2150","MAPPING1H":"2150"},{"SYMBOLID":"S*F*NB----*****","DESCRIPTION":"SOF Unit Special Boat","MAPPING1U":"2151","MAPPING1F":"2151","MAPPING1N":"2151","MAPPING1H":"2151","MAPPING2":"2152","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*NN----*****","DESCRIPTION":"SOF Unit Special SSNR","MAPPING1U":"2153","MAPPING1F":"2153","MAPPING1N":"2153","MAPPING1H":"2153"},{"SYMBOLID":"S*F*G-----*****","DESCRIPTION":"SOF Unit Ground","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"2154","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*F*GS----*****","DESCRIPTION":"SOF Unit Special Forces","MAPPING1U":"2158","MAPPING1F":"2158","MAPPING1N":"2158","MAPPING1H":"2158"},{"SYMBOLID":"S*F*GR----*****","DESCRIPTION":"SOF Unit Ranger","MAPPING1U":"604","MAPPING1F":"605","MAPPING1N":"606","MAPPING1H":"607","MAPPING2":"2159","MAPPING2COLOR":"#000000"},{"SYMBOLID":"S*F*GP----*****","DESCRIPTION":"SOF Unit Psychological Operations (PSYOP)","MAPPING1U":"2161","MAPPING1F":"2161","MAPPING1N":"2161","MAPPING1H":"2161","MAPPING2":"2162","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*GPA---*****","DESCRIPTION":"SOF Unit Fixed Wing Aviation (PSYOP)","MAPPING1U":"2163","MAPPING1F":"2163","MAPPING1N":"2163","MAPPING1H":"2163","MAPPING2":"2164","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"S*F*GC----*****","DESCRIPTION":"SOF Unit Civil Affairs","MAPPING1U":"2165","MAPPING1F":"2165","MAPPING1N":"2165","MAPPING1H":"2165"},{"SYMBOLID":"S*F*B-----*****","DESCRIPTION":"SOF Unit Support","MAPPING1U":"2166","MAPPING1F":"2166","MAPPING1N":"2166","MAPPING1H":"2166"},{"SYMBOLID":"S*Z*------*****","DESCRIPTION":"Unknown Battle Dimension","MAPPING1U":"999","MAPPING1F":"999","MAPPING1N":"999","MAPPING1H":"999"},{"SYMBOLID":"I*-*------*****","DESCRIPTION":"Signals Intelligence"},{"SYMBOLID":"I*P*------*****","DESCRIPTION":"Space Track"},{"SYMBOLID":"I*P*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*P*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*P*SCD---*****","DESCRIPTION":"Satellite Down-Link","MAPPING1U":"3000","MAPPING1F":"3000","MAPPING1N":"3000","MAPPING1H":"3000"},{"SYMBOLID":"I*P*SR----*****","DESCRIPTION":"Radar(Signal Intercept)"},{"SYMBOLID":"I*P*SRD---*****","DESCRIPTION":"Data Transmission(SPACE TRACK)","MAPPING1U":"3001","MAPPING1F":"3001","MAPPING1N":"3001","MAPPING1H":"3001"},{"SYMBOLID":"I*P*SRE---*****","DESCRIPTION":"Earth Surveillance","MAPPING1U":"3002","MAPPING1F":"3002","MAPPING1N":"3002","MAPPING1H":"3002"},{"SYMBOLID":"I*P*SRI---*****","DESCRIPTION":"IFF (Transponder)(SPACE TRACK)","MAPPING1U":"3003","MAPPING1F":"3003","MAPPING1N":"3003","MAPPING1H":"3003"},{"SYMBOLID":"I*P*SRM---*****","DESCRIPTION":"Multi-function(SPACE TRACK)","MAPPING1U":"3004","MAPPING1F":"3004","MAPPING1N":"3004","MAPPING1H":"3004"},{"SYMBOLID":"I*P*SRT---*****","DESCRIPTION":"Target Acquisition(Space Track)","MAPPING1U":"3005","MAPPING1F":"3005","MAPPING1N":"3005","MAPPING1H":"3005"},{"SYMBOLID":"I*P*SRS---*****","DESCRIPTION":"Space","MAPPING1U":"3006","MAPPING1F":"3006","MAPPING1N":"3006","MAPPING1H":"3006"},{"SYMBOLID":"I*P*SRU---*****","DESCRIPTION":"Unknown(Space Track)","MAPPING1U":"3007","MAPPING1F":"3007","MAPPING1N":"3007","MAPPING1H":"3007"},{"SYMBOLID":"I*A*------*****","DESCRIPTION":"Air Track"},{"SYMBOLID":"I*A*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*A*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*A*SCC---*****","DESCRIPTION":"Cellular/Mobile(AIR TRACK)","MAPPING1U":"3008","MAPPING1F":"3008","MAPPING1N":"3008","MAPPING1H":"3008"},{"SYMBOLID":"I*A*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(AIR TRACK)","MAPPING1U":"3009","MAPPING1F":"3009","MAPPING1N":"3009","MAPPING1H":"3009"},{"SYMBOLID":"I*A*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Air Track)","MAPPING1U":"3010","MAPPING1F":"3010","MAPPING1N":"3010","MAPPING1H":"3010"},{"SYMBOLID":"I*A*SCS---*****","DESCRIPTION":"Satellite Up-Link(Air Track)","MAPPING1U":"3011","MAPPING1F":"3011","MAPPING1N":"3011","MAPPING1H":"3011"},{"SYMBOLID":"I*A*SR----*****","DESCRIPTION":"Radar"},{"SYMBOLID":"I*A*SRAI--*****","DESCRIPTION":"Airborne Intercept","MAPPING1U":"3012","MAPPING1F":"3012","MAPPING1N":"3012","MAPPING1H":"3012"},{"SYMBOLID":"I*A*SRAS--*****","DESCRIPTION":"Airborne Search and Bombing","MAPPING1U":"3013","MAPPING1F":"3013","MAPPING1N":"3013","MAPPING1H":"3013"},{"SYMBOLID":"I*A*SRC---*****","DESCRIPTION":"Controlled Intercept(AIR TRACK)","MAPPING1U":"3014","MAPPING1F":"3014","MAPPING1N":"3014","MAPPING1H":"3014"},{"SYMBOLID":"I*A*SRD---*****","DESCRIPTION":"Data Transmission(AIR TRACK)","MAPPING1U":"3015","MAPPING1F":"3015","MAPPING1N":"3015","MAPPING1H":"3015"},{"SYMBOLID":"I*A*SRE---*****","DESCRIPTION":"Early Warning(AIR TRACK)","MAPPING1U":"3016","MAPPING1F":"3016","MAPPING1N":"3016","MAPPING1H":"3016"},{"SYMBOLID":"I*A*SRF---*****","DESCRIPTION":"Fire Control(AIR TRACK)","MAPPING1U":"3017","MAPPING1F":"3017","MAPPING1N":"3017","MAPPING1H":"3017"},{"SYMBOLID":"I*A*SRI---*****","DESCRIPTION":"IFF (Transponder)(AIR TRACK)","MAPPING1U":"3018","MAPPING1F":"3018","MAPPING1N":"3018","MAPPING1H":"3018"},{"SYMBOLID":"I*A*SRMA--*****","DESCRIPTION":"Missile Acquisition(AIR TRACK)","MAPPING1U":"3019","MAPPING1F":"3019","MAPPING1N":"3019","MAPPING1H":"3019"},{"SYMBOLID":"I*A*SRMD--*****","DESCRIPTION":"Missile Downlink","MAPPING1U":"3020","MAPPING1F":"3020","MAPPING1N":"3020","MAPPING1H":"3020"},{"SYMBOLID":"I*A*SRMG--*****","DESCRIPTION":"Missile Guidance(AIR TRACK)","MAPPING1U":"3021","MAPPING1F":"3021","MAPPING1N":"3021","MAPPING1H":"3021"},{"SYMBOLID":"I*A*SRMT--*****","DESCRIPTION":"Missile Tracking(AIR TRACK)","MAPPING1U":"3022","MAPPING1F":"3022","MAPPING1N":"3022","MAPPING1H":"3022"},{"SYMBOLID":"I*A*SRMF--*****","DESCRIPTION":"Multi-Function(AIR TRACK)","MAPPING1U":"3023","MAPPING1F":"3023","MAPPING1N":"3023","MAPPING1H":"3023"},{"SYMBOLID":"I*A*SRTI--*****","DESCRIPTION":"Target Illuminator(Air Track)","MAPPING1U":"3024","MAPPING1F":"3024","MAPPING1N":"3024","MAPPING1H":"3024"},{"SYMBOLID":"I*A*SRTA--*****","DESCRIPTION":"Target Acquisition(Air Track)","MAPPING1U":"3025","MAPPING1F":"3025","MAPPING1N":"3025","MAPPING1H":"3025"},{"SYMBOLID":"I*A*SRTT--*****","DESCRIPTION":"Target Tracking(Air Track)","MAPPING1U":"3026","MAPPING1F":"3026","MAPPING1N":"3026","MAPPING1H":"3026"},{"SYMBOLID":"I*A*SRU---*****","DESCRIPTION":"Unknown(Air Track)","MAPPING1U":"3027","MAPPING1F":"3027","MAPPING1N":"3027","MAPPING1H":"3027"},{"SYMBOLID":"I*G*------*****","DESCRIPTION":"Ground Track"},{"SYMBOLID":"I*G*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*G*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*G*SCC---*****","DESCRIPTION":"Cellular/Mobile(GROUND TRACK)","MAPPING1U":"3028","MAPPING1F":"3028","MAPPING1N":"3028","MAPPING1H":"3028"},{"SYMBOLID":"I*G*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(GROUND TRACK)","MAPPING1U":"3029","MAPPING1F":"3029","MAPPING1N":"3029","MAPPING1H":"3029"},{"SYMBOLID":"I*G*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Ground Track)","MAPPING1U":"3030","MAPPING1F":"3030","MAPPING1N":"3030","MAPPING1H":"3030"},{"SYMBOLID":"I*G*SCS---*****","DESCRIPTION":"Satellite Up-Link(Ground Track)","MAPPING1U":"3031","MAPPING1F":"3031","MAPPING1N":"3031","MAPPING1H":"3031"},{"SYMBOLID":"I*G*SCT---*****","DESCRIPTION":"Tropospheric Scatter","MAPPING1U":"3032","MAPPING1F":"3032","MAPPING1N":"3032","MAPPING1H":"3032"},{"SYMBOLID":"I*G*SR----*****","DESCRIPTION":"Radar(Signals Intelligence)"},{"SYMBOLID":"I*G*SRAT--*****","DESCRIPTION":"Air Traffic Control(GROUND TRACK)","MAPPING1U":"3033","MAPPING1F":"3033","MAPPING1N":"3033","MAPPING1H":"3033"},{"SYMBOLID":"I*G*SRAA--*****","DESCRIPTION":"Anti-Aircraft(GROUND TRACK)","MAPPING1U":"3034","MAPPING1F":"3034","MAPPING1N":"3034","MAPPING1H":"3034"},{"SYMBOLID":"I*G*SRB---*****","DESCRIPTION":"Battlefield Surveillance","MAPPING1U":"3035","MAPPING1F":"3035","MAPPING1N":"3035","MAPPING1H":"3035"},{"SYMBOLID":"I*G*SRCS--*****","DESCRIPTION":"Coastal Surveillance","MAPPING1U":"3036","MAPPING1F":"3036","MAPPING1N":"3036","MAPPING1H":"3036"},{"SYMBOLID":"I*G*SRCA--*****","DESCRIPTION":"Controlled Approach(GROUND TRACK)","MAPPING1U":"3037","MAPPING1F":"3037","MAPPING1N":"3037","MAPPING1H":"3037"},{"SYMBOLID":"I*G*SRD---*****","DESCRIPTION":"Data Transmission(GROUND TRACK)","MAPPING1U":"3038","MAPPING1F":"3038","MAPPING1N":"3038","MAPPING1H":"3038"},{"SYMBOLID":"I*G*SRE---*****","DESCRIPTION":"Early Warning(GROUND TRACK)","MAPPING1U":"3039","MAPPING1F":"3039","MAPPING1N":"3039","MAPPING1H":"3039"},{"SYMBOLID":"I*G*SRF---*****","DESCRIPTION":"Fire Control(GROUND TRACK)","MAPPING1U":"3040","MAPPING1F":"3040","MAPPING1N":"3040","MAPPING1H":"3040"},{"SYMBOLID":"I*G*SRH---*****","DESCRIPTION":"Height Finding(GROUND TRACK)","MAPPING1U":"3041","MAPPING1F":"3041","MAPPING1N":"3041","MAPPING1H":"3041"},{"SYMBOLID":"I*G*SRI---*****","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(GROUND TRACK)","MAPPING1U":"3042","MAPPING1F":"3042","MAPPING1N":"3042","MAPPING1H":"3042"},{"SYMBOLID":"I*G*SRMM--*****","DESCRIPTION":"Meteorological (Military)(GROUND TRACK)","MAPPING1U":"3043","MAPPING1F":"3043","MAPPING1N":"3043","MAPPING1H":"3043"},{"SYMBOLID":"I*G*SRMA--*****","DESCRIPTION":"Missile Acquisition(GROUND TRACK)","MAPPING1U":"3044","MAPPING1F":"3044","MAPPING1N":"3044","MAPPING1H":"3044"},{"SYMBOLID":"I*G*SRMG--*****","DESCRIPTION":"Missile Guidance(GROUND TRACK)","MAPPING1U":"3045","MAPPING1F":"3045","MAPPING1N":"3045","MAPPING1H":"3045"},{"SYMBOLID":"I*G*SRMT--*****","DESCRIPTION":"Missile Tracking(GROUND TRACK)","MAPPING1U":"3046","MAPPING1F":"3046","MAPPING1N":"3046","MAPPING1H":"3046"},{"SYMBOLID":"I*G*SRMF--*****","DESCRIPTION":"Multi-Function(GROUND TRACK)","MAPPING1U":"3047","MAPPING1F":"3047","MAPPING1N":"3047","MAPPING1H":"3047"},{"SYMBOLID":"I*G*SRS---*****","DESCRIPTION":"Shell Tracking","MAPPING1U":"3048","MAPPING1F":"3048","MAPPING1N":"3048","MAPPING1H":"3048"},{"SYMBOLID":"I*G*SRTA--*****","DESCRIPTION":"Target Acquisition(Radar)","MAPPING1U":"3049","MAPPING1F":"3049","MAPPING1N":"3049","MAPPING1H":"3049"},{"SYMBOLID":"I*G*SRTI--*****","DESCRIPTION":"Target Illuminator(Ground Track)","MAPPING1U":"3050","MAPPING1F":"3050","MAPPING1N":"3050","MAPPING1H":"3050"},{"SYMBOLID":"I*G*SRTT--*****","DESCRIPTION":"Target Tracking(Ground Track)","MAPPING1U":"3051","MAPPING1F":"3051","MAPPING1N":"3051","MAPPING1H":"3051"},{"SYMBOLID":"I*G*SRU---*****","DESCRIPTION":"Unknown(Ground Track)","MAPPING1U":"3052","MAPPING1F":"3052","MAPPING1N":"3052","MAPPING1H":"3052"},{"SYMBOLID":"I*S*------*****","DESCRIPTION":"Sea Surface Track"},{"SYMBOLID":"I*S*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*S*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*S*SCC---*****","DESCRIPTION":"Cellular/Mobile(SEA SURFACE TRACK)","MAPPING1U":"3053","MAPPING1F":"3053","MAPPING1N":"3053","MAPPING1H":"3053"},{"SYMBOLID":"I*S*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SEA SURFACE TRACK)","MAPPING1U":"3054","MAPPING1F":"3054","MAPPING1N":"3054","MAPPING1H":"3054"},{"SYMBOLID":"I*S*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Sea Surface Track)","MAPPING1U":"3055","MAPPING1F":"3055","MAPPING1N":"3055","MAPPING1H":"3055"},{"SYMBOLID":"I*S*SCS---*****","DESCRIPTION":"Satellite Up-Link(Sea Surface Track)","MAPPING1U":"3056","MAPPING1F":"3056","MAPPING1N":"3056","MAPPING1H":"3056"},{"SYMBOLID":"I*S*SR----*****","DESCRIPTION":"Radar(Sea Surface Track)"},{"SYMBOLID":"I*S*SRAT--*****","DESCRIPTION":"Air Traffic Control(SEA SURFACE TRACK)","MAPPING1U":"3057","MAPPING1F":"3057","MAPPING1N":"3057","MAPPING1H":"3057"},{"SYMBOLID":"I*S*SRAA--*****","DESCRIPTION":"Anti-Aircraft(SEA SURFACE TRACK)","MAPPING1U":"3058","MAPPING1F":"3058","MAPPING1N":"3058","MAPPING1H":"3058"},{"SYMBOLID":"I*S*SRCA--*****","DESCRIPTION":"Controlled Approach(SEA SURFACE TRACK)","MAPPING1U":"3059","MAPPING1F":"3059","MAPPING1N":"3059","MAPPING1H":"3059"},{"SYMBOLID":"I*S*SRCI--*****","DESCRIPTION":"Controlled Intercept(SEA SURFACE TRACK)","MAPPING1U":"3060","MAPPING1F":"3060","MAPPING1N":"3060","MAPPING1H":"3060"},{"SYMBOLID":"I*S*SRD---*****","DESCRIPTION":"Data Transmission(SEA SURFACE TRACK)","MAPPING1U":"3061","MAPPING1F":"3061","MAPPING1N":"3061","MAPPING1H":"3061"},{"SYMBOLID":"I*S*SRE---*****","DESCRIPTION":"Early Warning(SEA SURFACE TRACK)","MAPPING1U":"3062","MAPPING1F":"3062","MAPPING1N":"3062","MAPPING1H":"3062"},{"SYMBOLID":"I*S*SRF---*****","DESCRIPTION":"Fire Control(SEA SURFACE TRACK)","MAPPING1U":"3063","MAPPING1F":"3063","MAPPING1N":"3063","MAPPING1H":"3063"},{"SYMBOLID":"I*S*SRH---*****","DESCRIPTION":"Height Finding(SEA SURFACE TRACK)","MAPPING1U":"3064","MAPPING1F":"3064","MAPPING1N":"3064","MAPPING1H":"3064"},{"SYMBOLID":"I*S*SRI---*****","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(SEA SURFACE TRACK)","MAPPING1U":"3065","MAPPING1F":"3065","MAPPING1N":"3065","MAPPING1H":"3065"},{"SYMBOLID":"I*S*SRMM--*****","DESCRIPTION":"Meteorological (Military)(SEA SURFACE TRACK)","MAPPING1U":"3066","MAPPING1F":"3066","MAPPING1N":"3066","MAPPING1H":"3066"},{"SYMBOLID":"I*S*SRMA--*****","DESCRIPTION":"Missile Acquisition(SEA SURFACE TRACK)","MAPPING1U":"3067","MAPPING1F":"3067","MAPPING1N":"3067","MAPPING1H":"3067"},{"SYMBOLID":"I*S*SRMG--*****","DESCRIPTION":"Missile Guidance(SEA SURFACE TRACK)","MAPPING1U":"3068","MAPPING1F":"3068","MAPPING1N":"3068","MAPPING1H":"3068"},{"SYMBOLID":"I*S*SRMT--*****","DESCRIPTION":"Missile Tracking(SEA SURFACE TRACK)","MAPPING1U":"3069","MAPPING1F":"3069","MAPPING1N":"3069","MAPPING1H":"3069"},{"SYMBOLID":"I*S*SRMF--*****","DESCRIPTION":"Multi-Function(SEA SURFACE TRACK)","MAPPING1U":"3070","MAPPING1F":"3070","MAPPING1N":"3070","MAPPING1H":"3070"},{"SYMBOLID":"I*S*SRS---*****","DESCRIPTION":"Surface Search(Sea Surface Track)","MAPPING1U":"3071","MAPPING1F":"3071","MAPPING1N":"3071","MAPPING1H":"3071"},{"SYMBOLID":"I*S*SRTA--*****","DESCRIPTION":"Target Acquisition(Sea Surface Track)","MAPPING1U":"3072","MAPPING1F":"3072","MAPPING1N":"3072","MAPPING1H":"3072"},{"SYMBOLID":"I*S*SRTI--*****","DESCRIPTION":"Target Illuminator(Sea Surface Track)","MAPPING1U":"3073","MAPPING1F":"3073","MAPPING1N":"3073","MAPPING1H":"3073"},{"SYMBOLID":"I*S*SRTT--*****","DESCRIPTION":"Target Tracking(Sea Surface Track)","MAPPING1U":"3074","MAPPING1F":"3074","MAPPING1N":"3074","MAPPING1H":"3074"},{"SYMBOLID":"I*S*SRU---*****","DESCRIPTION":"Unknown(Sea Surface Track)","MAPPING1U":"3075","MAPPING1F":"3075","MAPPING1N":"3075","MAPPING1H":"3075"},{"SYMBOLID":"I*U*------*****","DESCRIPTION":"Subsurface Track"},{"SYMBOLID":"I*U*S-----*****","DESCRIPTION":"Signal Intercept"},{"SYMBOLID":"I*U*SC----*****","DESCRIPTION":"Communications"},{"SYMBOLID":"I*U*SCO---*****","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SUBSURFACE TRACK)","MAPPING1U":"3076","MAPPING1F":"3076","MAPPING1N":"3076","MAPPING1H":"3076"},{"SYMBOLID":"I*U*SCP---*****","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Subsurface Track)","MAPPING1U":"3077","MAPPING1F":"3077","MAPPING1N":"3077","MAPPING1H":"3077"},{"SYMBOLID":"I*U*SCS---*****","DESCRIPTION":"Satellite Up-Link(Subsurface Track)","MAPPING1U":"3078","MAPPING1F":"3078","MAPPING1N":"3078","MAPPING1H":"3078"},{"SYMBOLID":"I*U*SR----*****","DESCRIPTION":"Radar(Subsurface Track)"},{"SYMBOLID":"I*U*SRD---*****","DESCRIPTION":"Data Transmission(SUBSURFACE TRACK)","MAPPING1U":"3079","MAPPING1F":"3079","MAPPING1N":"3079","MAPPING1H":"3079"},{"SYMBOLID":"I*U*SRE---*****","DESCRIPTION":"Early Warning(SUBSURFACE TRACK)","MAPPING1U":"3080","MAPPING1F":"3080","MAPPING1N":"3080","MAPPING1H":"3080"},{"SYMBOLID":"I*U*SRM---*****","DESCRIPTION":"Multi-Function(Subsurface Track)","MAPPING1U":"3081","MAPPING1F":"3081","MAPPING1N":"3081","MAPPING1H":"3081"},{"SYMBOLID":"I*U*SRS---*****","DESCRIPTION":"Surface Search(Subsurface Track)","MAPPING1U":"3082","MAPPING1F":"3082","MAPPING1N":"3082","MAPPING1H":"3082"},{"SYMBOLID":"I*U*SRT---*****","DESCRIPTION":"Target Acquisition(Subsurface Track)","MAPPING1U":"3083","MAPPING1F":"3083","MAPPING1N":"3083","MAPPING1H":"3083"},{"SYMBOLID":"I*U*SRU---*****","DESCRIPTION":"Unknown(Subsurface Track)","MAPPING1U":"3084","MAPPING1F":"3084","MAPPING1N":"3084","MAPPING1H":"3084"},{"SYMBOLID":"O*-*------*****","DESCRIPTION":"Stability Operations"},{"SYMBOLID":"O*V*------*****","DESCRIPTION":"Violent Activities"},{"SYMBOLID":"O*V*A-----*****","DESCRIPTION":"Arson/Fire","MAPPING1U":"4000","MAPPING1F":"4000","MAPPING1N":"4000","MAPPING1H":"4000"},{"SYMBOLID":"O*V*M-----*****","DESCRIPTION":"Killing (General)","MAPPING1U":"4001","MAPPING1F":"4002","MAPPING1N":"4003","MAPPING1H":"4004"},{"SYMBOLID":"O*V*MA----*****","DESCRIPTION":"Murder","MAPPING1U":"4005","MAPPING1F":"4006","MAPPING1N":"4007","MAPPING1H":"4008"},{"SYMBOLID":"O*V*MB----*****","DESCRIPTION":"Execution","MAPPING1U":"4009","MAPPING1F":"4010","MAPPING1N":"4011","MAPPING1H":"4012"},{"SYMBOLID":"O*V*MC----*****","DESCRIPTION":"Assassination","MAPPING1U":"4013","MAPPING1F":"4014","MAPPING1N":"4015","MAPPING1H":"4016"},{"SYMBOLID":"O*V*B-----*****","DESCRIPTION":"Bomb/Bombing","MAPPING1U":"4017","MAPPING1F":"4017","MAPPING1N":"4017","MAPPING1H":"4017"},{"SYMBOLID":"O*V*Y-----*****","DESCRIPTION":"Booby Trap","MAPPING1U":"4018","MAPPING1F":"4018","MAPPING1N":"4018","MAPPING1H":"4018"},{"SYMBOLID":"O*V*D-----*****","DESCRIPTION":"Drive-By Shooting","MAPPING1U":"4019","MAPPING1F":"4019","MAPPING1N":"4019","MAPPING1H":"4019"},{"SYMBOLID":"O*V*S-----*****","DESCRIPTION":"Sniping","MAPPING1U":"4020","MAPPING1F":"4020","MAPPING1N":"4020","MAPPING1H":"4020"},{"SYMBOLID":"O*V*P-----*****","DESCRIPTION":"Poisoning","MAPPING1U":"4021","MAPPING1F":"4021","MAPPING1N":"4021","MAPPING1H":"4021"},{"SYMBOLID":"O*V*E-----*****","DESCRIPTION":"Explosion","MAPPING1U":"4022","MAPPING1F":"4022","MAPPING1N":"4022","MAPPING1H":"4022","MAPPING2":"406","MAPPING2COLOR":"#FFFF00"},{"SYMBOLID":"O*V*EI----*****","DESCRIPTION":"IED Explosion","MAPPING1U":"4023","MAPPING1F":"4023","MAPPING1N":"4023","MAPPING1H":"4023"},{"SYMBOLID":"O*V*EG----*****","DESCRIPTION":"Explosion, Grenade","MAPPING1U":"4508","MAPPING1F":"4508","MAPPING1N":"4508","MAPPING1H":"4508"},{"SYMBOLID":"O*V*EN----*****","DESCRIPTION":"Explosion, Incendiary","MAPPING1U":"4509","MAPPING1F":"4509","MAPPING1N":"4509","MAPPING1H":"4509"},{"SYMBOLID":"O*V*EM----*****","DESCRIPTION":"Explosion, Mine","MAPPING1U":"4510","MAPPING1F":"4510","MAPPING1N":"4510","MAPPING1H":"4510"},{"SYMBOLID":"O*V*EO----*****","DESCRIPTION":"Explosion, Mortar Fire","MAPPING1U":"4511","MAPPING1F":"4511","MAPPING1N":"4511","MAPPING1H":"4511"},{"SYMBOLID":"O*V*ER----*****","DESCRIPTION":"Explosion, Rocket","MAPPING1U":"4512","MAPPING1F":"4512","MAPPING1N":"4512","MAPPING1H":"4512"},{"SYMBOLID":"O*V*EV----*****","DESCRIPTION":"Explosion, Wheeled Vehicle","MAPPING1U":"4513","MAPPING1F":"4513","MAPPING1N":"4513","MAPPING1H":"4513"},{"SYMBOLID":"O*L*------*****","DESCRIPTION":"Locations"},{"SYMBOLID":"O*L*B-----*****","DESCRIPTION":"Black List Location","MAPPING1U":"4024","MAPPING1F":"4024","MAPPING1N":"4024","MAPPING1H":"4024"},{"SYMBOLID":"O*L*G-----*****","DESCRIPTION":"Gray List Location","MAPPING1U":"4025","MAPPING1F":"4025","MAPPING1N":"4025","MAPPING1H":"4025"},{"SYMBOLID":"O*L*W-----*****","DESCRIPTION":"White List Location","MAPPING1U":"4026","MAPPING1F":"4026","MAPPING1N":"4026","MAPPING1H":"4026"},{"SYMBOLID":"O*L*M-----*****","DESCRIPTION":"Mass Grave Location","MAPPING1U":"4027","MAPPING1F":"4027","MAPPING1N":"4027","MAPPING1H":"4027"},{"SYMBOLID":"O*L*E-----*****","DESCRIPTION":"Drug Lab","MAPPING1U":"4505","MAPPING1F":"4505","MAPPING1N":"4505","MAPPING1H":"4505"},{"SYMBOLID":"O*L*H-----*****","DESCRIPTION":"House/Residence","MAPPING1U":"4521","MAPPING1F":"4521","MAPPING1N":"4521","MAPPING1H":"4521"},{"SYMBOLID":"O*L*N-----*****","DESCRIPTION":"Cave Entrance","MAPPING1U":"4503","MAPPING1F":"4503","MAPPING1N":"4503","MAPPING1H":"4503"},{"SYMBOLID":"O*L*H-----*****","DESCRIPTION":"Palace/Presidential Residence","MAPPING1U":"4521","MAPPING1F":"4521","MAPPING1N":"4521","MAPPING1H":"4521"},{"SYMBOLID":"O*L*F-----*****","DESCRIPTION":"Polling Place","MAPPING1U":"4522","MAPPING1F":"4522","MAPPING1N":"4522","MAPPING1H":"4522"},{"SYMBOLID":"O*O*------*****","DESCRIPTION":"Operations"},{"SYMBOLID":"O*O*P-----*****","DESCRIPTION":"Patrolling","MAPPING1U":"4028","MAPPING1F":"4028","MAPPING1N":"4028","MAPPING1H":"4028"},{"SYMBOLID":"O*O*R-----*****","DESCRIPTION":"Recruitment"},{"SYMBOLID":"O*O*RW----*****","DESCRIPTION":"Recruitment (Willing)","MAPPING1U":"4029","MAPPING1F":"4029","MAPPING1N":"4029","MAPPING1H":"4029"},{"SYMBOLID":"O*O*RC----*****","DESCRIPTION":"Recruitment (Coerced/Impressed)","MAPPING1U":"4030","MAPPING1F":"4030","MAPPING1N":"4030","MAPPING1H":"4030"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Demonstration","MAPPING1U":"4031","MAPPING1F":"4031","MAPPING1N":"4031","MAPPING1H":"4031"},{"SYMBOLID":"O*O*M-----*****","DESCRIPTION":"Mine Laying","MAPPING1U":"4032","MAPPING1F":"4032","MAPPING1N":"4032","MAPPING1H":"4032"},{"SYMBOLID":"O*O*Y-----*****","DESCRIPTION":"Psychological Operations (Psyop)","MAPPING1U":"4033","MAPPING1F":"4033","MAPPING1N":"4033","MAPPING1H":"4033","MAPPING2":"4034","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YT----*****","DESCRIPTION":"Psyop (TV and Radio Propaganda)","MAPPING1U":"4035","MAPPING1F":"4036","MAPPING1N":"4037","MAPPING1H":"4038","MAPPING2":"4039","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YW----*****","DESCRIPTION":"Psyop (Written Propaganda)","MAPPING1U":"4043","MAPPING1F":"4043","MAPPING1N":"4043","MAPPING1H":"4043","MAPPING2":"4045","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*YH----*****","DESCRIPTION":"House-to-House Propaganda","MAPPING1U":"4044","MAPPING1F":"4044","MAPPING1N":"4044","MAPPING1H":"4044","MAPPING2":"4045","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*F-----*****","DESCRIPTION":"Foraging/Searching","MAPPING1U":"4046","MAPPING1F":"4046","MAPPING1N":"4046","MAPPING1H":"4046"},{"SYMBOLID":"O*O*S-----*****","DESCRIPTION":"Spy","MAPPING1U":"4047","MAPPING1F":"4047","MAPPING1N":"4047","MAPPING1H":"4047"},{"SYMBOLID":"O*O*O-----*****","DESCRIPTION":"Food Distribution","MAPPING1U":"4048","MAPPING1F":"4049","MAPPING1N":"4050","MAPPING1H":"4051"},{"SYMBOLID":"O*O*E-----*****","DESCRIPTION":"Extortion","MAPPING1U":"4052","MAPPING1F":"4052","MAPPING1N":"4052","MAPPING1H":"4052"},{"SYMBOLID":"O*O*H-----*****","DESCRIPTION":"Hijacking"},{"SYMBOLID":"O*O*HT----*****","DESCRIPTION":"Hijacking (Vehicle)","MAPPING1U":"4053","MAPPING1F":"4053","MAPPING1N":"4053","MAPPING1H":"4053"},{"SYMBOLID":"O*O*HA----*****","DESCRIPTION":"Hijacking (Airplane)","MAPPING1U":"4054","MAPPING1F":"4054","MAPPING1N":"4054","MAPPING1H":"4054","MAPPING2":"4055","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*HV----*****","DESCRIPTION":"Hijacking (Boat)","MAPPING1U":"4056","MAPPING1F":"4056","MAPPING1N":"4056","MAPPING1H":"4056","MAPPING2":"4057","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*K-----*****","DESCRIPTION":"Kidnapping","MAPPING1U":"4058","MAPPING1F":"4058","MAPPING1N":"4058","MAPPING1H":"4058"},{"SYMBOLID":"O*O*KA----*****","DESCRIPTION":"Attempted Kidnapping","MAPPING1U":"4059","MAPPING1F":"4059","MAPPING1N":"4059","MAPPING1H":"4059"},{"SYMBOLID":"O*O*A-----*****","DESCRIPTION":"Arrest","MAPPING1U":"4060","MAPPING1F":"4060","MAPPING1N":"4060","MAPPING1H":"4060"},{"SYMBOLID":"O*O*U-----*****","DESCRIPTION":"Drug Operation","MAPPING1U":"4061","MAPPING1F":"4061","MAPPING1N":"4061","MAPPING1H":"4061"},{"SYMBOLID":"O*O*UT----*****","DESCRIPTION":"Drug Trafficking","MAPPING1U":"4506","MAPPING1F":"4506","MAPPING1N":"4506","MAPPING1H":"4506"},{"SYMBOLID":"O*O*N-----*****","DESCRIPTION":"Raid on a House","MAPPING1U":"4500","MAPPING1F":"4500","MAPPING1N":"4500","MAPPING1H":"4500"},{"SYMBOLID":"O*O*2-----*****","DESCRIPTION":"Burglary","MAPPING1U":"4502","MAPPING1F":"4502","MAPPING1N":"4502","MAPPING1H":"4502"},{"SYMBOLID":"O*O*V-----*****","DESCRIPTION":"Home Eviction","MAPPING1U":"4514","MAPPING1F":"4514","MAPPING1N":"4514","MAPPING1H":"4514"},{"SYMBOLID":"O*O*I-----*****","DESCRIPTION":"Black Marketing","MAPPING1U":"4516","MAPPING1F":"4516","MAPPING1N":"4516","MAPPING1H":"4516"},{"SYMBOLID":"O*O*J-----*****","DESCRIPTION":"Jail Break","MAPPING1U":"4518","MAPPING1F":"4518","MAPPING1N":"4518","MAPPING1H":"4518","MAPPING2":"4519","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"O*O*B-----*****","DESCRIPTION":"Robbery","MAPPING1U":"4524","MAPPING1F":"4524","MAPPING1N":"4524","MAPPING1H":"4524"},{"SYMBOLID":"O*O*G-----*****","DESCRIPTION":"Sabotage","MAPPING1U":"4526","MAPPING1F":"4526","MAPPING1N":"4526","MAPPING1H":"4526"},{"SYMBOLID":"O*O*X-----*****","DESCRIPTION":"Smuggling","MAPPING1U":"4527","MAPPING1F":"4527","MAPPING1N":"4527","MAPPING1H":"4527"},{"SYMBOLID":"O*O*W-----*****","DESCRIPTION":"Rock Throwing","MAPPING1U":"4525","MAPPING1F":"4525","MAPPING1N":"4525","MAPPING1H":"4525"},{"SYMBOLID":"O*O*Z-----*****","DESCRIPTION":"Suspicious Activity","MAPPING1U":"4529","MAPPING1F":"4529","MAPPING1N":"4529","MAPPING1H":"4529"},{"SYMBOLID":"O*O*T-----*****","DESCRIPTION":"Theft","MAPPING1U":"4531","MAPPING1F":"4531","MAPPING1N":"4531","MAPPING1H":"4531"},{"SYMBOLID":"O*O*TV----*****","DESCRIPTION":"Wheeled Vehicle Theft","MAPPING1U":"4533","MAPPING1F":"4533","MAPPING1N":"4533","MAPPING1H":"4533"},{"SYMBOLID":"O*O*Q-----*****","DESCRIPTION":"Warrant Served","MAPPING1U":"4532","MAPPING1F":"4532","MAPPING1N":"4532","MAPPING1H":"4532"},{"SYMBOLID":"O*I*------*****","DESCRIPTION":"Items"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Refugees","MAPPING1U":"4066","MAPPING1F":"4066","MAPPING1N":"4066","MAPPING1H":"4066"},{"SYMBOLID":"O*I*S-----*****","DESCRIPTION":"Safe House","MAPPING1U":"4067","MAPPING1F":"4067","MAPPING1N":"4067","MAPPING1H":"4067"},{"SYMBOLID":"O*I*G-----*****","DESCRIPTION":"Graffiti","MAPPING1U":"4068","MAPPING1F":"4068","MAPPING1N":"4068","MAPPING1H":"4068"},{"SYMBOLID":"O*I*V-----*****","DESCRIPTION":"Vandalism/Loot/Ransack/Plunder/Sack","MAPPING1U":"4069","MAPPING1F":"4069","MAPPING1N":"4069","MAPPING1H":"4069"},{"SYMBOLID":"O*I*I-----*****","DESCRIPTION":"Known Insurgent Vehicle","MAPPING1U":"4070","MAPPING1F":"4070","MAPPING1N":"4070","MAPPING1H":"4070"},{"SYMBOLID":"O*I*D-----*****","DESCRIPTION":"Drug Vehicle","MAPPING1U":"4071","MAPPING1F":"4071","MAPPING1N":"4071","MAPPING1H":"4071"},{"SYMBOLID":"O*I*F-----*****","DESCRIPTION":"Internal Security Force","MAPPING1U":"4072","MAPPING1F":"4072","MAPPING1N":"4072","MAPPING1H":"4072"},{"SYMBOLID":"O*I*M-----*****","DESCRIPTION":"Meeting","MAPPING1U":"4520","MAPPING1F":"4520","MAPPING1N":"4520","MAPPING1H":"4520"},{"SYMBOLID":"O*I*T-----*****","DESCRIPTION":"Tent","MAPPING1U":"4530","MAPPING1F":"4530","MAPPING1N":"4530","MAPPING1H":"4530"},{"SYMBOLID":"O*P*------*****","DESCRIPTION":"Individual","MAPPING1U":"4073","MAPPING1F":"4073","MAPPING1N":"4073","MAPPING1H":"4073"},{"SYMBOLID":"O*P*A-----*****","DESCRIPTION":"Leader","MAPPING1U":"4074","MAPPING1F":"4074","MAPPING1N":"4074","MAPPING1H":"4074"},{"SYMBOLID":"O*P*AR----*****","DESCRIPTION":"Religious Leader","MAPPING1U":"4523","MAPPING1F":"4523","MAPPING1N":"4523","MAPPING1H":"4523"},{"SYMBOLID":"O*P*B-----*****","DESCRIPTION":"Targeted Individual","MAPPING1U":"4075","MAPPING1F":"4075","MAPPING1N":"4075","MAPPING1H":"4075"},{"SYMBOLID":"O*P*C-----*****","DESCRIPTION":"Terrorist","MAPPING1U":"4076","MAPPING1F":"4076","MAPPING1N":"4076","MAPPING1H":"4076"},{"SYMBOLID":"O*P*D-----*****","DESCRIPTION":"Dead Body","MAPPING1U":"4504","MAPPING1F":"4504","MAPPING1N":"4504","MAPPING1H":"4504"},{"SYMBOLID":"O*P*E-----*****","DESCRIPTION":"Speaker","MAPPING1U":"4528","MAPPING1F":"4528","MAPPING1N":"4528","MAPPING1H":"4528"},{"SYMBOLID":"O*P*F-----*****","DESCRIPTION":"IED Suicide Bomber","MAPPING1U":"4501","MAPPING1F":"4501","MAPPING1N":"4501","MAPPING1H":"4501"},{"SYMBOLID":"O*P*G-----*****","DESCRIPTION":"Exfiltrating Individual","MAPPING1U":"4507","MAPPING1F":"4507","MAPPING1N":"4507","MAPPING1H":"4507"},{"SYMBOLID":"O*P*H-----*****","DESCRIPTION":"Infiltrating Individual","MAPPING1U":"4517","MAPPING1F":"4517","MAPPING1N":"4517","MAPPING1H":"4517"},{"SYMBOLID":"O*G*------*****","DESCRIPTION":"Non-Military Group or Organization","MAPPING1U":"4077","MAPPING1F":"4077","MAPPING1N":"4077","MAPPING1H":"4077"},{"SYMBOLID":"O*G*B-----*****","DESCRIPTION":"Non-Governmental Organizations (NGO)","MAPPING1U":"4079","MAPPING1F":"4079","MAPPING1N":"4079","MAPPING1H":"4079"},{"SYMBOLID":"O*G*C-----*****","DESCRIPTION":"Terrorist Organization","MAPPING1U":"4080","MAPPING1F":"4080","MAPPING1N":"4080","MAPPING1H":"4080"},{"SYMBOLID":"O*G*D-----*****","DESCRIPTION":"Religious Organization","MAPPING1U":"4081","MAPPING1F":"4081","MAPPING1N":"4081","MAPPING1H":"4081"},{"SYMBOLID":"O*G*E-----*****","DESCRIPTION":"Foreign Fighter","MAPPING1U":"4082","MAPPING1F":"4082","MAPPING1N":"4082","MAPPING1H":"4082"},{"SYMBOLID":"O*G*F-----*****","DESCRIPTION":"Gang","MAPPING1U":"4083","MAPPING1F":"4083","MAPPING1N":"4083","MAPPING1H":"4083"},{"SYMBOLID":"O*R*------*****","DESCRIPTION":"Rape","MAPPING1U":"4084","MAPPING1F":"4084","MAPPING1N":"4084","MAPPING1H":"4084"},{"SYMBOLID":"O*R*A-----*****","DESCRIPTION":"Attempted Rape","MAPPING1U":"4085","MAPPING1F":"4085","MAPPING1N":"4085","MAPPING1H":"4085"},{"SYMBOLID":"O*E*------*****","DESCRIPTION":"Events SASO"},{"SYMBOLID":"O*E*A-----*****","DESCRIPTION":"Elections SASO","MAPPING1U":"9004","MAPPING1F":"9004","MAPPING1N":"9004","MAPPING1H":"9004"},{"SYMBOLID":"O*E*B-----*****","DESCRIPTION":"Speech SASO","MAPPING1U":"9005","MAPPING1F":"9005","MAPPING1N":"9005","MAPPING1H":"9005"},{"SYMBOLID":"O*E*C-----*****","DESCRIPTION":"Sermon SASO","MAPPING1U":"9006","MAPPING1F":"9006","MAPPING1N":"9006","MAPPING1H":"9006"},{"SYMBOLID":"O*E*D-----*****","DESCRIPTION":"Meeting SASO","MAPPING1U":"9007","MAPPING1F":"9007","MAPPING1N":"9007","MAPPING1H":"9007"},{"SYMBOLID":"O*E*E-----*****","DESCRIPTION":"Demonstration(Events) SASO","MAPPING1U":"9008","MAPPING1F":"9008","MAPPING1N":"9008","MAPPING1H":"9008"},{"SYMBOLID":"O*E*F-----*****","DESCRIPTION":"Riot SASO","MAPPING1U":"9009","MAPPING1F":"9009","MAPPING1N":"9009","MAPPING1H":"9009"},{"SYMBOLID":"O*E*G-----*****","DESCRIPTION":"Gang Activity SASO","MAPPING1U":"9010","MAPPING1F":"9010","MAPPING1N":"9010","MAPPING1H":"9010"},{"SYMBOLID":"O*E*H-----*****","DESCRIPTION":"Jail Break/Escape Custody SASO","MAPPING1U":"9011","MAPPING1F":"9011","MAPPING1N":"9011","MAPPING1H":"9011"},{"SYMBOLID":"O*E*I-----*****","DESCRIPTION":"Rock Throwing SASO","MAPPING1U":"9012","MAPPING1F":"9012","MAPPING1N":"9012","MAPPING1H":"9012"},{"SYMBOLID":"O*E*J-----*****","DESCRIPTION":"Illegal Selling/Purchasing/Distributing/Black Market SASO","MAPPING1U":"9013","MAPPING1F":"9013","MAPPING1N":"9013","MAPPING1H":"9013"},{"SYMBOLID":"O*E*K-----*****","DESCRIPTION":"Surveillance SASO","MAPPING1U":"9014","MAPPING1F":"9014","MAPPING1N":"9014","MAPPING1H":"9014"},{"SYMBOLID":"O*E*L-----*****","DESCRIPTION":"Lights SASO","MAPPING1U":"9015","MAPPING1F":"9015","MAPPING1N":"9015","MAPPING1H":"9015"},{"SYMBOLID":"O*E*M-----*****","DESCRIPTION":"Border Crossing SASO","MAPPING1U":"9016","MAPPING1F":"9016","MAPPING1N":"9016","MAPPING1H":"9016"},{"SYMBOLID":"O*E*N-----*****","DESCRIPTION":"Border Activity SASO","MAPPING1U":"9017","MAPPING1F":"9017","MAPPING1N":"9017","MAPPING1H":"9017"},{"SYMBOLID":"O*E*O-----*****","DESCRIPTION":"Smuggling SASO","MAPPING1U":"9018","MAPPING1F":"9018","MAPPING1N":"9018","MAPPING1H":"9018"},{"SYMBOLID":"O*E*P-----*****","DESCRIPTION":"Exfiltration SASO","MAPPING1U":"9019","MAPPING1F":"9019","MAPPING1N":"9019","MAPPING1H":"9019"},{"SYMBOLID":"O*E*Q-----*****","DESCRIPTION":"Infiltration SASO","MAPPING1U":"9020","MAPPING1F":"9020","MAPPING1N":"9020","MAPPING1H":"9020"},{"SYMBOLID":"O*E*R-----*****","DESCRIPTION":"Auto Theft SASO","MAPPING1U":"9021","MAPPING1F":"9021","MAPPING1N":"9021","MAPPING1H":"9021"},{"SYMBOLID":"O*E*S-----*****","DESCRIPTION":"Auto Accident SASO","MAPPING1U":"9022","MAPPING1F":"9022","MAPPING1N":"9022","MAPPING1H":"9022"},{"SYMBOLID":"O*E*T-----*****","DESCRIPTION":"Looting SASO","MAPPING1U":"9023","MAPPING1F":"9023","MAPPING1N":"9023","MAPPING1H":"9023"},{"SYMBOLID":"O*E*U-----*****","DESCRIPTION":"Theft SASO","MAPPING1U":"9024","MAPPING1F":"9024","MAPPING1N":"9024","MAPPING1H":"9024"},{"SYMBOLID":"O*E*V-----*****","DESCRIPTION":"Robbery SASO","MAPPING1U":"9025","MAPPING1F":"9025","MAPPING1N":"9025","MAPPING1H":"9025"},{"SYMBOLID":"O*E*W-----*****","DESCRIPTION":"Home Eviction SASO","MAPPING1U":"9026","MAPPING1F":"9026","MAPPING1N":"9026","MAPPING1H":"9026"},{"SYMBOLID":"O*E*X-----*****","DESCRIPTION":"Shooting (Non Deadly) SASO","MAPPING1U":"9027","MAPPING1F":"9027","MAPPING1N":"9027","MAPPING1H":"9027"},{"SYMBOLID":"O*E*Y-----*****","DESCRIPTION":"Raid SASO","MAPPING1U":"9028","MAPPING1F":"9028","MAPPING1N":"9028","MAPPING1H":"9028"},{"SYMBOLID":"O*E*Z-----*****","DESCRIPTION":"Sabotage SASO","MAPPING1U":"9029","MAPPING1F":"9029","MAPPING1N":"9029","MAPPING1H":"9029"},{"SYMBOLID":"O*E*AA----*****","DESCRIPTION":"Warrant Served SASO","MAPPING1U":"9030","MAPPING1F":"9030","MAPPING1N":"9030","MAPPING1H":"9030"},{"SYMBOLID":"O*E*AB----*****","DESCRIPTION":"Rape SASO","MAPPING1U":"9031","MAPPING1F":"9031","MAPPING1N":"9031","MAPPING1H":"9031"},{"SYMBOLID":"O*E*AC----*****","DESCRIPTION":"Attempted Rape SASO","MAPPING1U":"9032","MAPPING1F":"9032","MAPPING1N":"9032","MAPPING1H":"9032"},{"SYMBOLID":"O*E*AD----*****","DESCRIPTION":"Attack(Events) SASO"},{"SYMBOLID":"O*E*ADA---*****","DESCRIPTION":"Attack on NGO SASO","MAPPING1U":"9033","MAPPING1F":"9033","MAPPING1N":"9033","MAPPING1H":"9033"},{"SYMBOLID":"O*E*ADB---*****","DESCRIPTION":"Terrorist Attack SASO","MAPPING1U":"9034","MAPPING1F":"9034","MAPPING1N":"9034","MAPPING1H":"9034"},{"SYMBOLID":"O*E*ADC---*****","DESCRIPTION":"Grenade Attack SASO","MAPPING1U":"9035","MAPPING1F":"9035","MAPPING1N":"9035","MAPPING1H":"9035"},{"SYMBOLID":"O*E*ADD---*****","DESCRIPTION":"Rocket Attack SASO","MAPPING1U":"9036","MAPPING1F":"9036","MAPPING1N":"9036","MAPPING1H":"9036"},{"SYMBOLID":"O*E*AE----*****","DESCRIPTION":"Explosions SASO"},{"SYMBOLID":"O*E*AEA---*****","DESCRIPTION":"Explosion (general) SASO","MAPPING1U":"9037","MAPPING1F":"9037","MAPPING1N":"9037","MAPPING1H":"9037"},{"SYMBOLID":"O*E*AEB---*****","DESCRIPTION":"Explosion, Mine SASO","MAPPING1U":"9038","MAPPING1F":"9038","MAPPING1N":"9038","MAPPING1H":"9038"},{"SYMBOLID":"O*E*AEC---*****","DESCRIPTION":"Explosion, Grenade SASO","MAPPING1U":"9039","MAPPING1F":"9039","MAPPING1N":"9039","MAPPING1H":"9039"},{"SYMBOLID":"O*E*AED---*****","DESCRIPTION":"Explosion, Bomb SASO","MAPPING1U":"9040","MAPPING1F":"9040","MAPPING1N":"9040","MAPPING1H":"9040"},{"SYMBOLID":"O*E*AEE---*****","DESCRIPTION":"Explosion, Mortar Fire SASO","MAPPING1U":"9041","MAPPING1F":"9041","MAPPING1N":"9041","MAPPING1H":"9041"},{"SYMBOLID":"O*E*AEF---*****","DESCRIPTION":"Explosion, Incendiary SASO","MAPPING1U":"9042","MAPPING1F":"9042","MAPPING1N":"9042","MAPPING1H":"9042"},{"SYMBOLID":"O*E*AEG---*****","DESCRIPTION":"Explosion, Rocket SASO","MAPPING1U":"9043","MAPPING1F":"9043","MAPPING1N":"9043","MAPPING1H":"9043"},{"SYMBOLID":"O*E*AEH---*****","DESCRIPTION":"Explosion, Improvised Explosive Device (IED) SASO","MAPPING1U":"9044","MAPPING1F":"9044","MAPPING1N":"9044","MAPPING1H":"9044"},{"SYMBOLID":"O*E*AEI---*****","DESCRIPTION":"Explosion, Car Bomb SASO","MAPPING1U":"9045","MAPPING1F":"9045","MAPPING1N":"9045","MAPPING1H":"9045"},{"SYMBOLID":"O*E*AEJ---*****","DESCRIPTION":"Suicide Bombing SASO","MAPPING1U":"9046","MAPPING1F":"9046","MAPPING1N":"9046","MAPPING1H":"9046"},{"SYMBOLID":"O*E*AF----*****","DESCRIPTION":"Fighting/Contact SASO"},{"SYMBOLID":"O*E*AFA---*****","DESCRIPTION":"Fighting (General) SASO","MAPPING1U":"9047","MAPPING1F":"9047","MAPPING1N":"9047","MAPPING1H":"9047"},{"SYMBOLID":"O*E*AFB---*****","DESCRIPTION":"Coalition vs. Enemy SASO","MAPPING1U":"9048","MAPPING1F":"9048","MAPPING1N":"9048","MAPPING1H":"9048"},{"SYMBOLID":"O*E*AFC---*****","DESCRIPTION":"Coalition vs. Coalition SASO","MAPPING1U":"9049","MAPPING1F":"9049","MAPPING1N":"9049","MAPPING1H":"9049"},{"SYMBOLID":"O*E*AG----*****","DESCRIPTION":"Drug Possession SASO","MAPPING1U":"9050","MAPPING1F":"9050","MAPPING1N":"9050","MAPPING1H":"9050"},{"SYMBOLID":"O*E*AH----*****","DESCRIPTION":"Drug Trafficking SASO","MAPPING1U":"9051","MAPPING1F":"9051","MAPPING1N":"9051","MAPPING1H":"9051"},{"SYMBOLID":"O*E*AI----*****","DESCRIPTION":"Suspicious Activity SASO","MAPPING1U":"9052","MAPPING1F":"9052","MAPPING1N":"9052","MAPPING1H":"9052"},{"SYMBOLID":"O*E*AJ----*****","DESCRIPTION":"Activity SASO","MAPPING1U":"9053","MAPPING1F":"9053","MAPPING1N":"9053","MAPPING1H":"9053"},{"SYMBOLID":"O*E*AK----*****","DESCRIPTION":"Threat SASO","MAPPING1U":"9054","MAPPING1F":"9054","MAPPING1N":"9054","MAPPING1H":"9054"},{"SYMBOLID":"O*E*AL----*****","DESCRIPTION":"Crater SASO","MAPPING1U":"9055","MAPPING1F":"9055","MAPPING1N":"9055","MAPPING1H":"9055"},{"SYMBOLID":"O*E*AM----*****","DESCRIPTION":"Pothole SASO","MAPPING1U":"9056","MAPPING1F":"9057","MAPPING1N":"9058","MAPPING1H":"9059"},{"SYMBOLID":"O*E*AN----*****","DESCRIPTION":"Escalation of Force SASO","MAPPING1U":"9060","MAPPING1F":"9061","MAPPING1N":"9062","MAPPING1H":"9063"},{"SYMBOLID":"O*E*AO----*****","DESCRIPTION":"Submunitions SASO","MAPPING1U":"9064","MAPPING1F":"9064","MAPPING1N":"9064","MAPPING1H":"9064"},{"SYMBOLID":"O*E*AP----*****","DESCRIPTION":"Confiscation SASO","MAPPING1U":"9065","MAPPING1F":"9066","MAPPING1N":"9067","MAPPING1H":"9068"},{"SYMBOLID":"O*E*AQ----*****","DESCRIPTION":"Counter Insurgency SASO","MAPPING1U":"9069","MAPPING1F":"9070","MAPPING1N":"9071","MAPPING1H":"9072"},{"SYMBOLID":"O*E*AR----*****","DESCRIPTION":"Counter Terrorism SASO","MAPPING1U":"9073","MAPPING1F":"9074","MAPPING1N":"9075","MAPPING1H":"9076"},{"SYMBOLID":"O*E*AS----*****","DESCRIPTION":"Humanitarian Assistance SASO","MAPPING1U":"9077","MAPPING1F":"9078","MAPPING1N":"9079","MAPPING1H":"9080"},{"SYMBOLID":"O*E*AT----*****","DESCRIPTION":"Tests of Security SASO","MAPPING1U":"9081","MAPPING1F":"9082","MAPPING1N":"9083","MAPPING1H":"9084"},{"SYMBOLID":"O*E*AU----*****","DESCRIPTION":"AWOL SASO","MAPPING1U":"9085","MAPPING1F":"9085","MAPPING1N":"9085","MAPPING1H":"9085"},{"SYMBOLID":"O*E*AV----*****","DESCRIPTION":"Curfew SASO","MAPPING1U":"9086","MAPPING1F":"9086","MAPPING1N":"9086","MAPPING1H":"9086"},{"SYMBOLID":"O*E*AW----*****","DESCRIPTION":"DUI SASO","MAPPING1U":"9087","MAPPING1F":"9087","MAPPING1N":"9087","MAPPING1H":"9087"},{"SYMBOLID":"O*E*AX----*****","DESCRIPTION":"Prostitution SASO","MAPPING1U":"9088","MAPPING1F":"9088","MAPPING1N":"9088","MAPPING1H":"9088"},{"SYMBOLID":"O*Y*------*****","DESCRIPTION":"Organization/Groups SASO"},{"SYMBOLID":"O*Y*A-----*****","DESCRIPTION":"Organization (General) SASO","MAPPING1U":"9089","MAPPING1F":"9089","MAPPING1N":"9089","MAPPING1H":"9089"},{"SYMBOLID":"O*Y*B-----*****","DESCRIPTION":"NGO Organization SASO","MAPPING1U":"9090","MAPPING1F":"9090","MAPPING1N":"9090","MAPPING1H":"9090"},{"SYMBOLID":"O*Y*C-----*****","DESCRIPTION":"Displaced Persons, Refugees SASO","MAPPING1U":"9091","MAPPING1F":"9091","MAPPING1N":"9091","MAPPING1H":"9091"},{"SYMBOLID":"O*Y*D-----*****","DESCRIPTION":"Terrorist Organization SASO","MAPPING1U":"9092","MAPPING1F":"9092","MAPPING1N":"9092","MAPPING1H":"9092"},{"SYMBOLID":"O*Y*E-----*****","DESCRIPTION":"Religious Organization SASO","MAPPING1U":"9093","MAPPING1F":"9093","MAPPING1N":"9093","MAPPING1H":"9093"},{"SYMBOLID":"O*Y*F-----*****","DESCRIPTION":"Group Tribe Cell SASO","MAPPING1U":"9094","MAPPING1F":"9094","MAPPING1N":"9094","MAPPING1H":"9094"},{"SYMBOLID":"O*Y*G-----*****","DESCRIPTION":"Foreign Fighters SASO","MAPPING1U":"9095","MAPPING1F":"9095","MAPPING1N":"9095","MAPPING1H":"9095"},{"SYMBOLID":"O*Y*R-----*****","DESCRIPTION":"Red Cross SASO"},{"SYMBOLID":"O*Y*SP----*****","DESCRIPTION":"State Police SASO"},{"SYMBOLID":"O*Y*LP----*****","DESCRIPTION":"Local Police SASO"},{"SYMBOLID":"O*Y*SH----*****","DESCRIPTION":"Shelter SASO"},{"SYMBOLID":"O*Y*FM----*****","DESCRIPTION":"FEMA SASO"},{"SYMBOLID":"O*Y*SA----*****","DESCRIPTION":"Staging Area SASO"},{"SYMBOLID":"O*Y*EP----*****","DESCRIPTION":"Evacuation Point SASO"},{"SYMBOLID":"O*Y*PD----*****","DESCRIPTION":"Person in Distress SASO"},{"SYMBOLID":"O*S*------*****","DESCRIPTION":"Structures SASO"},{"SYMBOLID":"O*S*A-----*****","DESCRIPTION":"Compound/Post/Fort SASO","MAPPING1U":"9103","MAPPING1F":"9103","MAPPING1N":"9103","MAPPING1H":"9103"},{"SYMBOLID":"O*S*B-----*****","DESCRIPTION":"House/Residence SASO","MAPPING1U":"9104","MAPPING1F":"9104","MAPPING1N":"9104","MAPPING1H":"9104"},{"SYMBOLID":"O*S*C-----*****","DESCRIPTION":"Safe House(Structures) SASO","MAPPING1U":"9105","MAPPING1F":"9105","MAPPING1N":"9105","MAPPING1H":"9105"},{"SYMBOLID":"O*S*D-----*****","DESCRIPTION":"Church SASO","MAPPING1U":"9106","MAPPING1F":"9106","MAPPING1N":"9106","MAPPING1H":"9106"},{"SYMBOLID":"O*S*E-----*****","DESCRIPTION":"Mosque SASO","MAPPING1U":"9107","MAPPING1F":"9107","MAPPING1N":"9107","MAPPING1H":"9107"},{"SYMBOLID":"O*S*F-----*****","DESCRIPTION":"Synagogue SASO","MAPPING1U":"9108","MAPPING1F":"9108","MAPPING1N":"9108","MAPPING1H":"9108"},{"SYMBOLID":"O*S*G-----*****","DESCRIPTION":"Warehouse/Storage Facility SASO","MAPPING1U":"9109","MAPPING1F":"9109","MAPPING1N":"9109","MAPPING1H":"9109"},{"SYMBOLID":"O*S*H-----*****","DESCRIPTION":"Bunker/Underground Facility SASO","MAPPING1U":"9110","MAPPING1F":"9110","MAPPING1N":"9110","MAPPING1H":"9110"},{"SYMBOLID":"O*S*I-----*****","DESCRIPTION":"Tents SASO","MAPPING1U":"9111","MAPPING1F":"9111","MAPPING1N":"9111","MAPPING1H":"9111"},{"SYMBOLID":"O*S*J-----*****","DESCRIPTION":"Cave SASO","MAPPING1U":"9112","MAPPING1F":"9112","MAPPING1N":"9112","MAPPING1H":"9112"},{"SYMBOLID":"O*S*K-----*****","DESCRIPTION":"Camps SASO"},{"SYMBOLID":"O*S*KA----*****","DESCRIPTION":"Camp (General) SASO","MAPPING1U":"9114","MAPPING1F":"9114","MAPPING1N":"9114","MAPPING1H":"9114"},{"SYMBOLID":"O*S*KB----*****","DESCRIPTION":"Displaced Persons/Refugees Camp SASO","MAPPING1U":"9115","MAPPING1F":"9115","MAPPING1N":"9115","MAPPING1H":"9115"},{"SYMBOLID":"O*S*KC----*****","DESCRIPTION":"Training Camp SASO","MAPPING1U":"9116","MAPPING1F":"9116","MAPPING1N":"9116","MAPPING1H":"9116"},{"SYMBOLID":"O*S*L-----*****","DESCRIPTION":"Prison/Detention Facility SASO","MAPPING1U":"9117","MAPPING1F":"9117","MAPPING1N":"9117","MAPPING1H":"9117"},{"SYMBOLID":"O*S*M-----*****","DESCRIPTION":"Police Station SASO","MAPPING1U":"9118","MAPPING1F":"9118","MAPPING1N":"9118","MAPPING1H":"9118"},{"SYMBOLID":"O*S*N-----*****","DESCRIPTION":"Palace/Presidential Residence SASO","MAPPING1U":"9119","MAPPING1F":"9119","MAPPING1N":"9119","MAPPING1H":"9119"},{"SYMBOLID":"O*Q*------*****","DESCRIPTION":"Equipment/Weapons SASO"},{"SYMBOLID":"O*Q*A-----*****","DESCRIPTION":"Weapons Found SASO","MAPPING1U":"9121","MAPPING1F":"9121","MAPPING1N":"9121","MAPPING1H":"9121"},{"SYMBOLID":"O*Q*B-----*****","DESCRIPTION":"Weapons Cache SASO","MAPPING1U":"9122","MAPPING1F":"9122","MAPPING1N":"9122","MAPPING1H":"9122"},{"SYMBOLID":"O*Q*C-----*****","DESCRIPTION":"Weapons Confiscated SASO","MAPPING1U":"9123","MAPPING1F":"9123","MAPPING1N":"9123","MAPPING1H":"9123"},{"SYMBOLID":"O*Q*D-----*****","DESCRIPTION":"Weapons Sale SASO","MAPPING1U":"9124","MAPPING1F":"9124","MAPPING1N":"9124","MAPPING1H":"9124"},{"SYMBOLID":"O*Q*E-----*****","DESCRIPTION":"Weapons Market SASO","MAPPING1U":"9125","MAPPING1F":"9125","MAPPING1N":"9125","MAPPING1H":"9125"},{"SYMBOLID":"O*Q*F-----*****","DESCRIPTION":"Chem/Bio Weapons Cache SASO","MAPPING1U":"9126","MAPPING1F":"9126","MAPPING1N":"9126","MAPPING1H":"9126"},{"SYMBOLID":"O*Q*G-----*****","DESCRIPTION":"Improvised Explosive Device (IED) SASO","MAPPING1U":"9127","MAPPING1F":"9127","MAPPING1N":"9127","MAPPING1H":"9127"},{"SYMBOLID":"O*Q*H-----*****","DESCRIPTION":"Unexploded Ordnance (UXO) SASO","MAPPING1U":"9128","MAPPING1F":"9128","MAPPING1N":"9128","MAPPING1H":"9128"},{"SYMBOLID":"O*Q*I-----*****","DESCRIPTION":"Horses SASO","MAPPING1U":"9129","MAPPING1F":"9129","MAPPING1N":"9129","MAPPING1H":"9129"},{"SYMBOLID":"O*Q*J-----*****","DESCRIPTION":"Camels SASO","MAPPING1U":"9130","MAPPING1F":"9130","MAPPING1N":"9130","MAPPING1H":"9130"},{"SYMBOLID":"O*Q*K-----*****","DESCRIPTION":"Donkeys SASO","MAPPING1U":"9131","MAPPING1F":"9131","MAPPING1N":"9131","MAPPING1H":"9131"},{"SYMBOLID":"E*-*------*****","DESCRIPTION":"Emergency Management Symbols"},{"SYMBOLID":"E*I*------*****","DESCRIPTION":"Incident"},{"SYMBOLID":"E*I*A-----*****","DESCRIPTION":"Civil Disturbance Incident","MAPPING1U":"5000","MAPPING1F":"5000","MAPPING1N":"5000","MAPPING1H":"5000"},{"SYMBOLID":"E*I*AC----*****","DESCRIPTION":"Civil Rioting","MAPPING1U":"5001","MAPPING1F":"5001","MAPPING1N":"5001","MAPPING1H":"5001"},{"SYMBOLID":"E*I*B-----*****","DESCRIPTION":"Criminal Activity Incident","MAPPING1U":"5002","MAPPING1F":"5002","MAPPING1N":"5002","MAPPING1H":"5002"},{"SYMBOLID":"E*I*BA----*****","DESCRIPTION":"Bomb Threat","MAPPING1U":"5003","MAPPING1F":"5003","MAPPING1N":"5003","MAPPING1H":"5003"},{"SYMBOLID":"E*I*BC----*****","DESCRIPTION":"Explosion (Bomb)","MAPPING1U":"5004","MAPPING1F":"5004","MAPPING1N":"5004","MAPPING1H":"5004"},{"SYMBOLID":"E*I*BD----*****","DESCRIPTION":"Looting","MAPPING1U":"5005","MAPPING1F":"5005","MAPPING1N":"5005","MAPPING1H":"5005"},{"SYMBOLID":"E*I*BF----*****","DESCRIPTION":"Shooting","MAPPING1U":"5006","MAPPING1F":"5006","MAPPING1N":"5006","MAPPING1H":"5006"},{"SYMBOLID":"E*I*C-----*****","DESCRIPTION":"Fire Incident","MAPPING1U":"5007","MAPPING1F":"5007","MAPPING1N":"5007","MAPPING1H":"5007"},{"SYMBOLID":"E*I*CA----*****","DESCRIPTION":"Hot Spot","MAPPING1U":"5008","MAPPING1F":"5008","MAPPING1N":"5008","MAPPING1H":"5008","MAPPING1COLOR":"000000","MAPPING2":"5009","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*CB----*****","DESCRIPTION":"Non-Residential Fire","MAPPING1U":"5010","MAPPING1F":"5010","MAPPING1N":"5010","MAPPING1H":"5010"},{"SYMBOLID":"E*I*CC----*****","DESCRIPTION":"Origin","MAPPING1U":"5011","MAPPING1F":"5011","MAPPING1N":"5011","MAPPING1H":"5011","MAPPING1COLOR":"000000","MAPPING2":"5012","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*CD----*****","DESCRIPTION":"Residential Fire","MAPPING1U":"5013","MAPPING1F":"5013","MAPPING1N":"5013","MAPPING1H":"5013"},{"SYMBOLID":"E*I*CE----*****","DESCRIPTION":"School Fire","MAPPING1U":"5014","MAPPING1F":"5014","MAPPING1N":"5014","MAPPING1H":"5014"},{"SYMBOLID":"E*I*CF----*****","DESCRIPTION":"Smoke","MAPPING1U":"5015","MAPPING1F":"5015","MAPPING1N":"5015","MAPPING1H":"5015"},{"SYMBOLID":"E*I*CG----*****","DESCRIPTION":"Special Needs Fire","MAPPING1U":"5016","MAPPING1F":"5016","MAPPING1N":"5016","MAPPING1H":"5016"},{"SYMBOLID":"E*I*CH----*****","DESCRIPTION":"Wild Fire","MAPPING1U":"5017","MAPPING1F":"5017","MAPPING1N":"5017","MAPPING1H":"5017"},{"SYMBOLID":"E*I*D-----*****","DESCRIPTION":"Hazardous Material Incident","MAPPING1U":"5018","MAPPING1F":"5018","MAPPING1N":"5018","MAPPING1H":"5018","MAPPING1COLOR":"000000","MAPPING2":"5019","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DA----*****","DESCRIPTION":"Chemical Agent","MAPPING1U":"5020","MAPPING1F":"5020","MAPPING1N":"5020","MAPPING1H":"5020","MAPPING1COLOR":"000000","MAPPING2":"5021","MAPPING2COLOR":"FFFF00"},{"SYMBOLID":"E*I*DB----*****","DESCRIPTION":"Corrosive Material","MAPPING1U":"5022","MAPPING1F":"5022","MAPPING1N":"5022","MAPPING1H":"5022"},{"SYMBOLID":"E*I*DC----*****","DESCRIPTION":"Hazardous When Wet","MAPPING1U":"5023","MAPPING1F":"5023","MAPPING1N":"5023","MAPPING1H":"5023","MAPPING1COLOR":"000000","MAPPING2":"5024","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DD----*****","DESCRIPTION":"Explosive","MAPPING1U":"5025","MAPPING1F":"5025","MAPPING1N":"5025","MAPPING1H":"5025","MAPPING1COLOR":"000000","MAPPING2":"5026","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DE----*****","DESCRIPTION":"Flammable Gas","MAPPING1U":"5027","MAPPING1F":"5027","MAPPING1N":"5027","MAPPING1H":"5027","MAPPING1COLOR":"000000","MAPPING2":"5028","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DF----*****","DESCRIPTION":"Flammable Liquid","MAPPING1U":"5029","MAPPING1F":"5029","MAPPING1N":"5029","MAPPING1H":"5029","MAPPING1COLOR":"000000","MAPPING2":"5030","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DG----*****","DESCRIPTION":"Flammable Solid","MAPPING1U":"5031","MAPPING1F":"5031","MAPPING1N":"5031","MAPPING1H":"5031","MAPPING1COLOR":"000000","MAPPING2":"5032","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DH----*****","DESCRIPTION":"Non-Flammable Gas","MAPPING1U":"5033","MAPPING1F":"5033","MAPPING1N":"5033","MAPPING1H":"5033","MAPPING1COLOR":"000000","MAPPING2":"5034","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DI----*****","DESCRIPTION":"Organic Peroxide","MAPPING1U":"5035","MAPPING1F":"5035","MAPPING1N":"5035","MAPPING1H":"5035","MAPPING1COLOR":"000000","MAPPING2":"5036","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DJ----*****","DESCRIPTION":"Oxidizer","MAPPING1U":"5037","MAPPING1F":"5037","MAPPING1N":"5037","MAPPING1H":"5037","MAPPING1COLOR":"000000","MAPPING2":"5038","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DK----*****","DESCRIPTION":"Radioactive Material","MAPPING1U":"5039","MAPPING1F":"5039","MAPPING1N":"5039","MAPPING1H":"5039"},{"SYMBOLID":"E*I*DL----*****","DESCRIPTION":"Spontaneously Combustible","MAPPING1U":"5040","MAPPING1F":"5040","MAPPING1N":"5040","MAPPING1H":"5040"},{"SYMBOLID":"E*I*DM----*****","DESCRIPTION":"Toxic Gas","MAPPING1U":"5041","MAPPING1F":"5041","MAPPING1N":"5041","MAPPING1H":"5041","MAPPING1COLOR":"000000","MAPPING2":"5042","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*DN----*****","DESCRIPTION":"Toxic and Infectious","MAPPING1U":"5043","MAPPING1F":"5043","MAPPING1N":"5043","MAPPING1H":"5043"},{"SYMBOLID":"E*I*DO----*****","DESCRIPTION":"Unexploded Ordinance","MAPPING1U":"5044","MAPPING1F":"5044","MAPPING1N":"5044","MAPPING1H":"5044"},{"SYMBOLID":"E*I*E-----*****","DESCRIPTION":"Air Incident","MAPPING1U":"5045","MAPPING1F":"5045","MAPPING1N":"5045","MAPPING1H":"5045","MAPPING1COLOR":"000000","MAPPING2":"5046","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*EA----*****","DESCRIPTION":"Air Accident","MAPPING1U":"5047","MAPPING1F":"5047","MAPPING1N":"5047","MAPPING1H":"5047","MAPPING1COLOR":"000000","MAPPING2":"5048","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*F-----*****","DESCRIPTION":"Marine Incident","MAPPING1U":"5051","MAPPING1F":"5051","MAPPING1N":"5051","MAPPING1H":"5051","MAPPING1COLOR":"000000","MAPPING2":"5052","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*FA----*****","DESCRIPTION":"Marine Accident","MAPPING1U":"5053","MAPPING1F":"5053","MAPPING1N":"5053","MAPPING1H":"5053","MAPPING1COLOR":"000000","MAPPING2":"5054","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*I*G-----*****","DESCRIPTION":"Rail Incident","MAPPING1U":"5057","MAPPING1F":"5057","MAPPING1N":"5057","MAPPING1H":"5057","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*I*GA----*****","DESCRIPTION":"Rail Accident","MAPPING1U":"5058","MAPPING1F":"5058","MAPPING1N":"5058","MAPPING1H":"5058","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*I*GB----*****","DESCRIPTION":"Rail Hijacking","MAPPING1U":"5059","MAPPING1F":"5059","MAPPING1N":"5059","MAPPING1H":"5059","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*I*H-----*****","DESCRIPTION":"Vehicle Incident","MAPPING1U":"5060","MAPPING1F":"5060","MAPPING1N":"5060","MAPPING1H":"5060","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*I*HA----*****","DESCRIPTION":"Vehicle Accident","MAPPING1U":"5061","MAPPING1F":"5061","MAPPING1N":"5061","MAPPING1H":"5061","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*N*------*****","DESCRIPTION":"Natural Events"},{"SYMBOLID":"E*O*------*****","DESCRIPTION":"Operations"},{"SYMBOLID":"E*O*A-----*****","DESCRIPTION":"Emergency Medical Operation","MAPPING1U":"5200","MAPPING1F":"5200","MAPPING1N":"5200","MAPPING1H":"5200"},{"SYMBOLID":"E*O*AA----*****","DESCRIPTION":"Emergency Medical Operation Unit","MAPPING1U":"5200","MAPPING1F":"5200","MAPPING1N":"5200","MAPPING1H":"5200"},{"SYMBOLID":"E*O*AB----*****","DESCRIPTION":"Emergency Medical Operation Equipment","MAPPING1U":"5200","MAPPING1F":"5200","MAPPING1N":"5200","MAPPING1H":"5200"},{"SYMBOLID":"E*O*AC----*****","DESCRIPTION":"Emergency Medical Operation Installation","MAPPING1U":"5200","MAPPING1F":"5200","MAPPING1N":"5200","MAPPING1H":"5200"},{"SYMBOLID":"E*O*AD----*****","DESCRIPTION":"EMT Station Location","MAPPING1U":"5200","MAPPING1F":"5200","MAPPING1N":"5200","MAPPING1H":"5200"},{"SYMBOLID":"E*O*AE----*****","DESCRIPTION":"Ambulance","MAPPING1U":"5201","MAPPING1F":"5201","MAPPING1N":"5201","MAPPING1H":"5201","MAPPING1COLOR":"000000","MAPPING2":"5202","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*AF----*****","DESCRIPTION":"Medical Evacuation Helicopter","MAPPING1U":"5203","MAPPING1F":"5203","MAPPING1N":"5203","MAPPING1H":"5203","MAPPING1COLOR":"000000","MAPPING2":"5204","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*AG----*****","DESCRIPTION":"Health Department Facility","MAPPING1U":"5205","MAPPING1F":"5205","MAPPING1N":"5205","MAPPING1H":"5205"},{"SYMBOLID":"E*O*AJ----*****","DESCRIPTION":"Medical Facilities Out Patient","MAPPING1U":"5206","MAPPING1F":"5206","MAPPING1N":"5206","MAPPING1H":"5206","MAPPING1COLOR":"000000","MAPPING2":"5207","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*AK----*****","DESCRIPTION":"Morgue","MAPPING1U":"5208","MAPPING1F":"5208","MAPPING1N":"5208","MAPPING1H":"5208","MAPPING1COLOR":"000000","MAPPING2":"5209","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*AL----*****","DESCRIPTION":"Pharmacy","MAPPING1U":"5210","MAPPING1F":"5210","MAPPING1N":"5210","MAPPING1H":"5210"},{"SYMBOLID":"E*O*AM----*****","DESCRIPTION":"Triage","MAPPING1U":"5211","MAPPING1F":"5211","MAPPING1N":"5211","MAPPING1H":"5211","MAPPING1COLOR":"000000","MAPPING2":"5212","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*B-----*****","DESCRIPTION":"Emergency Operation","MAPPING1U":"5213","MAPPING1F":"5213","MAPPING1N":"5213","MAPPING1H":"5213","MAPPING1COLOR":"000000","MAPPING2":"5214","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BA----*****","DESCRIPTION":"Emergency Operation Unit","MAPPING1U":"5213","MAPPING1F":"5213","MAPPING1N":"5213","MAPPING1H":"5213","MAPPING1COLOR":"000000","MAPPING2":"5214","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BB----*****","DESCRIPTION":"Emergency Operation Equipment","MAPPING1U":"5213","MAPPING1F":"5213","MAPPING1N":"5213","MAPPING1H":"5213","MAPPING1COLOR":"000000","MAPPING2":"5214","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BC----*****","DESCRIPTION":"Emergency Operation Installation","MAPPING1U":"5213","MAPPING1F":"5213","MAPPING1N":"5213","MAPPING1H":"5213","MAPPING1COLOR":"000000","MAPPING2":"5214","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BD----*****","DESCRIPTION":"Emergency Collection Evacuation Point","MAPPING1U":"5215","MAPPING1F":"5215","MAPPING1N":"5215","MAPPING1H":"5215","MAPPING1COLOR":"000000","MAPPING2":"5216","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BE----*****","DESCRIPTION":"Emergency Incident Command Center","MAPPING1U":"5217","MAPPING1F":"5217","MAPPING1N":"5217","MAPPING1H":"5217","MAPPING1COLOR":"000000","MAPPING2":"5218","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BF----*****","DESCRIPTION":"Emergency Operations Center","MAPPING1U":"5219","MAPPING1F":"5219","MAPPING1N":"5219","MAPPING1H":"5219","MAPPING1COLOR":"000000","MAPPING2":"5220","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BG----*****","DESCRIPTION":"Emergency Public Information Center","MAPPING1U":"5221","MAPPING1F":"5221","MAPPING1N":"5221","MAPPING1H":"5221","MAPPING1COLOR":"000000","MAPPING2":"5222","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BH----*****","DESCRIPTION":"Emergency Shelter","MAPPING1U":"5223","MAPPING1F":"5223","MAPPING1N":"5223","MAPPING1H":"5223","MAPPING1COLOR":"000000","MAPPING2":"5224","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BI----*****","DESCRIPTION":"Emergency Staging Area","MAPPING1U":"5225","MAPPING1F":"5225","MAPPING1N":"5225","MAPPING1H":"5225","MAPPING1COLOR":"000000","MAPPING2":"5226","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BJ----*****","DESCRIPTION":"Emergency Team","MAPPING1U":"5227","MAPPING1F":"5227","MAPPING1N":"5227","MAPPING1H":"5227","MAPPING1COLOR":"000000","MAPPING2":"5228","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*BK----*****","DESCRIPTION":"Emergency Water Distribution Center","MAPPING1U":"5229","MAPPING1F":"5230","MAPPING1N":"5231","MAPPING1H":"5232","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*O*BL----*****","DESCRIPTION":"Emergency Food Distribution Center","MAPPING1U":"5233","MAPPING1F":"5234","MAPPING1N":"5235","MAPPING1H":"5236","MAPPING1COLOR":"000000"},{"SYMBOLID":"E*O*C-----*****","DESCRIPTION":"Fire Fighting Operation","MAPPING1U":"5237","MAPPING1F":"5237","MAPPING1N":"5237","MAPPING1H":"5237"},{"SYMBOLID":"E*O*CA----*****","DESCRIPTION":"Fire Fighting Operation Unit","MAPPING1U":"5237","MAPPING1F":"5237","MAPPING1N":"5237","MAPPING1H":"5237"},{"SYMBOLID":"E*O*CB----*****","DESCRIPTION":"Fire Fighting Operation Equipment","MAPPING1U":"5237","MAPPING1F":"5237","MAPPING1N":"5237","MAPPING1H":"5237"},{"SYMBOLID":"E*O*CC----*****","DESCRIPTION":"Fire Hydrant","MAPPING1U":"5238","MAPPING1F":"5238","MAPPING1N":"5238","MAPPING1H":"5238","MAPPING1COLOR":"000000","MAPPING2":"5239","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*CD----*****","DESCRIPTION":"Other Water Supply Location","MAPPING1U":"5240","MAPPING1F":"5240","MAPPING1N":"5240","MAPPING1H":"5240","MAPPING1COLOR":"000000","MAPPING2":"5241","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*CE----*****","DESCRIPTION":"Fire Station","MAPPING1U":"5237","MAPPING1F":"5237","MAPPING1N":"5237","MAPPING1H":"5237"},{"SYMBOLID":"E*O*D-----*****","DESCRIPTION":"Law Enforcement Operation","MAPPING1U":"5242","MAPPING1F":"5242","MAPPING1N":"5242","MAPPING1H":"5242"},{"SYMBOLID":"E*O*DA----*****","DESCRIPTION":"Law Enforcement Operation Unit","MAPPING1U":"5242","MAPPING1F":"5242","MAPPING1N":"5242","MAPPING1H":"5242"},{"SYMBOLID":"E*O*DB----*****","DESCRIPTION":"Law Enforcement Operation Equipment","MAPPING1U":"5242","MAPPING1F":"5242","MAPPING1N":"5242","MAPPING1H":"5242"},{"SYMBOLID":"E*O*DC----*****","DESCRIPTION":"Law Enforcement Operation Installation","MAPPING1U":"5242","MAPPING1F":"5242","MAPPING1N":"5242","MAPPING1H":"5242"},{"SYMBOLID":"E*O*DD----*****","DESCRIPTION":"ATF","MAPPING1U":"5243","MAPPING1F":"5243","MAPPING1N":"5243","MAPPING1H":"5243"},{"SYMBOLID":"E*O*DDA---*****","DESCRIPTION":"ATF Unit","MAPPING1U":"5243","MAPPING1F":"5243","MAPPING1N":"5243","MAPPING1H":"5243"},{"SYMBOLID":"E*O*DDB---*****","DESCRIPTION":"ATF Equipment","MAPPING1U":"5243","MAPPING1F":"5243","MAPPING1N":"5243","MAPPING1H":"5243"},{"SYMBOLID":"E*O*DDC---*****","DESCRIPTION":"ATF Installation","MAPPING1U":"5243","MAPPING1F":"5243","MAPPING1N":"5243","MAPPING1H":"5243"},{"SYMBOLID":"E*O*DE----*****","DESCRIPTION":"Border Patrol","MAPPING1U":"5244","MAPPING1F":"5244","MAPPING1N":"5244","MAPPING1H":"5244","MAPPING1COLOR":"000000","MAPPING2":"5245","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DEA---*****","DESCRIPTION":"Border Patrol Unit","MAPPING1U":"5244","MAPPING1F":"5244","MAPPING1N":"5244","MAPPING1H":"5244","MAPPING1COLOR":"000000","MAPPING2":"5245","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DEB---*****","DESCRIPTION":"Border Patrol Equipment","MAPPING1U":"5244","MAPPING1F":"5244","MAPPING1N":"5244","MAPPING1H":"5244","MAPPING1COLOR":"000000","MAPPING2":"5245","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DEC---*****","DESCRIPTION":"Border Patrol Installation","MAPPING1U":"5244","MAPPING1F":"5244","MAPPING1N":"5244","MAPPING1H":"5244","MAPPING1COLOR":"000000","MAPPING2":"5245","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DF----*****","DESCRIPTION":"Customs Service","MAPPING1U":"5246","MAPPING1F":"5246","MAPPING1N":"5246","MAPPING1H":"5246","MAPPING1COLOR":"000000","MAPPING2":"5247","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DFA---*****","DESCRIPTION":"Customs Service Unit","MAPPING1U":"5246","MAPPING1F":"5246","MAPPING1N":"5246","MAPPING1H":"5246","MAPPING1COLOR":"000000","MAPPING2":"5247","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DFB---*****","DESCRIPTION":"Customs Service Equipment","MAPPING1U":"5246","MAPPING1F":"5246","MAPPING1N":"5246","MAPPING1H":"5246","MAPPING1COLOR":"000000","MAPPING2":"5247","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DFC---*****","DESCRIPTION":"Customs Service Installation","MAPPING1U":"5246","MAPPING1F":"5246","MAPPING1N":"5246","MAPPING1H":"5246","MAPPING1COLOR":"000000","MAPPING2":"5247","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DG----*****","DESCRIPTION":"DEA","MAPPING1U":"5248","MAPPING1F":"5248","MAPPING1N":"5248","MAPPING1H":"5248"},{"SYMBOLID":"E*O*DGA---*****","DESCRIPTION":"DEA Unit","MAPPING1U":"5248","MAPPING1F":"5248","MAPPING1N":"5248","MAPPING1H":"5248"},{"SYMBOLID":"E*O*DGB---*****","DESCRIPTION":"DEA Equipment","MAPPING1U":"5248","MAPPING1F":"5248","MAPPING1N":"5248","MAPPING1H":"5248"},{"SYMBOLID":"E*O*DGC---*****","DESCRIPTION":"DEA Installation","MAPPING1U":"5248","MAPPING1F":"5248","MAPPING1N":"5248","MAPPING1H":"5248"},{"SYMBOLID":"E*O*DH----*****","DESCRIPTION":"DOJ","MAPPING1U":"5249","MAPPING1F":"5249","MAPPING1N":"5249","MAPPING1H":"5249"},{"SYMBOLID":"E*O*DHA---*****","DESCRIPTION":"DOJ Unit","MAPPING1U":"5249","MAPPING1F":"5249","MAPPING1N":"5249","MAPPING1H":"5249"},{"SYMBOLID":"E*O*DHB---*****","DESCRIPTION":"DOJ Equipment","MAPPING1U":"5249","MAPPING1F":"5249","MAPPING1N":"5249","MAPPING1H":"5249"},{"SYMBOLID":"E*O*DHC---*****","DESCRIPTION":"DOJ Installation","MAPPING1U":"5249","MAPPING1F":"5249","MAPPING1N":"5249","MAPPING1H":"5249"},{"SYMBOLID":"E*O*DI----*****","DESCRIPTION":"FBI","MAPPING1U":"5250","MAPPING1F":"5250","MAPPING1N":"5250","MAPPING1H":"5250"},{"SYMBOLID":"E*O*DIA---*****","DESCRIPTION":"FBI Unit","MAPPING1U":"5250","MAPPING1F":"5250","MAPPING1N":"5250","MAPPING1H":"5250"},{"SYMBOLID":"E*O*DIB---*****","DESCRIPTION":"FBI Equipment","MAPPING1U":"5250","MAPPING1F":"5250","MAPPING1N":"5250","MAPPING1H":"5250"},{"SYMBOLID":"E*O*DIC---*****","DESCRIPTION":"FBI Installation","MAPPING1U":"5250","MAPPING1F":"5250","MAPPING1N":"5250","MAPPING1H":"5250"},{"SYMBOLID":"E*O*DJ----*****","DESCRIPTION":"Police","MAPPING1U":"5251","MAPPING1F":"5251","MAPPING1N":"5251","MAPPING1H":"5251"},{"SYMBOLID":"E*O*DJB---*****","DESCRIPTION":"Police Equipment","MAPPING1U":"5251","MAPPING1F":"5251","MAPPING1N":"5251","MAPPING1H":"5251"},{"SYMBOLID":"E*O*DJC---*****","DESCRIPTION":"Police Installation","MAPPING1U":"5251","MAPPING1F":"5251","MAPPING1N":"5251","MAPPING1H":"5251"},{"SYMBOLID":"E*O*DK----*****","DESCRIPTION":"Prison","MAPPING1U":"5252","MAPPING1F":"5252","MAPPING1N":"5252","MAPPING1H":"5252","MAPPING1COLOR":"000000","MAPPING2":"5253","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DL----*****","DESCRIPTION":"Secret Service","MAPPING1U":"5254","MAPPING1F":"5254","MAPPING1N":"5254","MAPPING1H":"5254"},{"SYMBOLID":"E*O*DLA---*****","DESCRIPTION":"Secret Service Unit","MAPPING1U":"5254","MAPPING1F":"5254","MAPPING1N":"5254","MAPPING1H":"5254"},{"SYMBOLID":"E*O*DLB---*****","DESCRIPTION":"Secret Service Equipment","MAPPING1U":"5254","MAPPING1F":"5254","MAPPING1N":"5254","MAPPING1H":"5254"},{"SYMBOLID":"E*O*DLC---*****","DESCRIPTION":"Secret Service Installation","MAPPING1U":"5254","MAPPING1F":"5254","MAPPING1N":"5254","MAPPING1H":"5254"},{"SYMBOLID":"E*O*DM----*****","DESCRIPTION":"TSA","MAPPING1U":"5255","MAPPING1F":"5255","MAPPING1N":"5255","MAPPING1H":"5255"},{"SYMBOLID":"E*O*DMA---*****","DESCRIPTION":"TSA Unit","MAPPING1U":"5255","MAPPING1F":"5255","MAPPING1N":"5255","MAPPING1H":"5255"},{"SYMBOLID":"E*O*DMB---*****","DESCRIPTION":"TSA Equipment","MAPPING1U":"5255","MAPPING1F":"5255","MAPPING1N":"5255","MAPPING1H":"5255"},{"SYMBOLID":"E*O*DMC---*****","DESCRIPTION":"TSA Installation","MAPPING1U":"5255","MAPPING1F":"5255","MAPPING1N":"5255","MAPPING1H":"5255"},{"SYMBOLID":"E*O*DN----*****","DESCRIPTION":"Coast Guard","MAPPING1U":"2007","MAPPING1F":"2007","MAPPING1N":"2007","MAPPING1H":"2007","MAPPING1COLOR":"000000","MAPPING2":"2008","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DNA---*****","DESCRIPTION":"Coast Guard Unit","MAPPING1U":"2007","MAPPING1F":"2007","MAPPING1N":"2007","MAPPING1H":"2007","MAPPING1COLOR":"000000","MAPPING2":"2008","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DNC---*****","DESCRIPTION":"Coast Guard Installation","MAPPING1U":"2007","MAPPING1F":"2007","MAPPING1N":"2007","MAPPING1H":"2007","MAPPING1COLOR":"000000","MAPPING2":"2008","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DO----*****","DESCRIPTION":"US Marshals Service","MAPPING1U":"5257","MAPPING1F":"5257","MAPPING1N":"5257","MAPPING1H":"5257","MAPPING1COLOR":"000000","MAPPING2":"5258","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DOA---*****","DESCRIPTION":"US Marshals Service Unit","MAPPING1U":"5257","MAPPING1F":"5257","MAPPING1N":"5257","MAPPING1H":"5257","MAPPING1COLOR":"000000","MAPPING2":"5258","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DOB---*****","DESCRIPTION":"US Marshals Service Equipment","MAPPING1U":"5257","MAPPING1F":"5257","MAPPING1N":"5257","MAPPING1H":"5257","MAPPING1COLOR":"000000","MAPPING2":"5258","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*DOC---*****","DESCRIPTION":"US Marshals Service Installation","MAPPING1U":"5257","MAPPING1F":"5257","MAPPING1N":"5257","MAPPING1H":"5257","MAPPING1COLOR":"000000","MAPPING2":"5258","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*O*EA----*****","DESCRIPTION":"Biological Sensor","MAPPING1U":"5260","MAPPING1F":"5260","MAPPING1N":"5260","MAPPING1H":"5260"},{"SYMBOLID":"E*O*EB----*****","DESCRIPTION":"Chemical Sensor","MAPPING1U":"5261","MAPPING1F":"5261","MAPPING1N":"5261","MAPPING1H":"5261"},{"SYMBOLID":"E*O*EC----*****","DESCRIPTION":"Intrusion Sensor","MAPPING1U":"5262","MAPPING1F":"5262","MAPPING1N":"5262","MAPPING1H":"5262"},{"SYMBOLID":"E*O*ED----*****","DESCRIPTION":"Nuclear Sensor","MAPPING1U":"5263","MAPPING1F":"5263","MAPPING1N":"5263","MAPPING1H":"5263"},{"SYMBOLID":"E*O*EE----*****","DESCRIPTION":"Radiological Sensor","MAPPING1U":"5264","MAPPING1F":"5264","MAPPING1N":"5264","MAPPING1H":"5264"},{"SYMBOLID":"E*F*------*****","DESCRIPTION":"Infrastructure"},{"SYMBOLID":"E*F*A-----*****","DESCRIPTION":"Agriculture and Food Infrastructure","MAPPING1U":"5265","MAPPING1F":"5265","MAPPING1N":"5265","MAPPING1H":"5265","MAPPING1COLOR":"000000","MAPPING2":"5266","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*AA----*****","DESCRIPTION":"Agricultural Laboratory","MAPPING1U":"5267","MAPPING1F":"5267","MAPPING1N":"5267","MAPPING1H":"5267","MAPPING1COLOR":"000000","MAPPING2":"5268","MAPPING2COLOR":"808080"},{"SYMBOLID":"E*F*AB----*****","DESCRIPTION":"Animal Feedlot","MAPPING1U":"5269","MAPPING1F":"5269","MAPPING1N":"5269","MAPPING1H":"5269","MAPPING1COLOR":"000000","MAPPING2":"5270","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*AC----*****","DESCRIPTION":"Commercial Food Distribution Center","MAPPING1U":"5271","MAPPING1F":"5272","MAPPING1N":"5273","MAPPING1H":"5274"},{"SYMBOLID":"E*F*AD----*****","DESCRIPTION":"Farm/Ranch","MAPPING1U":"5275","MAPPING1F":"5275","MAPPING1N":"5275","MAPPING1H":"5275","MAPPING1COLOR":"000000","MAPPING2":"5276","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*AE----*****","DESCRIPTION":"Food Production Center","MAPPING1U":"5277","MAPPING1F":"5278","MAPPING1N":"5279","MAPPING1H":"5280"},{"SYMBOLID":"E*F*AF----*****","DESCRIPTION":"Food Retail","MAPPING1U":"5281","MAPPING1F":"5282","MAPPING1N":"5283","MAPPING1H":"5284"},{"SYMBOLID":"E*F*AH----*****","DESCRIPTION":"Grain Storage","MAPPING1U":"5285","MAPPING1F":"5285","MAPPING1N":"5285","MAPPING1H":"5285","MAPPING2":"5286","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*B-----*****","DESCRIPTION":"Banking Finance and Insurance Infrastructure","MAPPING1U":"5287","MAPPING1F":"5287","MAPPING1N":"5287","MAPPING1H":"5287"},{"SYMBOLID":"E*F*BA----*****","DESCRIPTION":"ATM","MAPPING1U":"5288","MAPPING1F":"5288","MAPPING1N":"5288","MAPPING1H":"5288","MAPPING2":"5289","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*BB----*****","DESCRIPTION":"Bank","MAPPING1U":"5290","MAPPING1F":"5290","MAPPING1N":"5290","MAPPING1H":"5290","MAPPING2":"5291","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*BC----*****","DESCRIPTION":"Bullion Storage","MAPPING1U":"5292","MAPPING1F":"5292","MAPPING1N":"5292","MAPPING1H":"5292","MAPPING2":"5293","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*BD----*****","DESCRIPTION":"Federal Reserve Bank","MAPPING1U":"5294","MAPPING1F":"5294","MAPPING1N":"5294","MAPPING1H":"5294","MAPPING2":"5295","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*BE----*****","DESCRIPTION":"Financial Exchange","MAPPING1U":"5296","MAPPING1F":"5296","MAPPING1N":"5296","MAPPING1H":"5296"},{"SYMBOLID":"E*F*BF----*****","DESCRIPTION":"Financial Services Other","MAPPING1U":"5297","MAPPING1F":"5297","MAPPING1N":"5297","MAPPING1H":"5297"},{"SYMBOLID":"E*F*C-----*****","DESCRIPTION":"Commercial Infrastructure","MAPPING1U":"5298","MAPPING1F":"5298","MAPPING1N":"5298","MAPPING1H":"5298","MAPPING2":"5299","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CA----*****","DESCRIPTION":"Chemical Plant","MAPPING1U":"5300","MAPPING1F":"5300","MAPPING1N":"5300","MAPPING1H":"5300","MAPPING2":"5299","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CB----*****","DESCRIPTION":"Firearms Manufacturer","MAPPING1U":"5301","MAPPING1F":"5301","MAPPING1N":"5301","MAPPING1H":"5301","MAPPING2":"5299","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CC----*****","DESCRIPTION":"Firearms Retailer","MAPPING1U":"5302","MAPPING1F":"5302","MAPPING1N":"5302","MAPPING1H":"5302","MAPPING2":"5303","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CD----*****","DESCRIPTION":"Hazardous Material Production","MAPPING1U":"5304","MAPPING1F":"5304","MAPPING1N":"5304","MAPPING1H":"5304","MAPPING2":"5299","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CE----*****","DESCRIPTION":"Hazardous Material Storage","MAPPING1U":"5306","MAPPING1F":"5306","MAPPING1N":"5306","MAPPING1H":"5306","MAPPING2":"5307","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CF----*****","DESCRIPTION":"Industrial Site","MAPPING1U":"5308","MAPPING1F":"5308","MAPPING1N":"5308","MAPPING1H":"5308","MAPPING2":"5299","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CG----*****","DESCRIPTION":"Landfill","MAPPING1U":"5310","MAPPING1F":"5310","MAPPING1N":"5310","MAPPING1H":"5310","MAPPING2":"5311","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CH----*****","DESCRIPTION":"Pharmaceutical Manufacturer","MAPPING1U":"5312","MAPPING1F":"5312","MAPPING1N":"5312","MAPPING1H":"5312","MAPPING2":"5313","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CI----*****","DESCRIPTION":"Contaminated Hazardous Waste Site","MAPPING1U":"5314","MAPPING1F":"5314","MAPPING1N":"5314","MAPPING1H":"5314","MAPPING2":"5315","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*CJ----*****","DESCRIPTION":"Toxic Release Inventory","MAPPING1U":"5316","MAPPING1F":"5316","MAPPING1N":"5316","MAPPING1H":"5316","MAPPING2":"5317","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*D-----*****","DESCRIPTION":"Educational Facilties Infrastructure","MAPPING1U":"5318","MAPPING1F":"5318","MAPPING1N":"5318","MAPPING1H":"5318"},{"SYMBOLID":"E*F*DA----*****","DESCRIPTION":"College University","MAPPING1U":"5319","MAPPING1F":"5319","MAPPING1N":"5319","MAPPING1H":"5319"},{"SYMBOLID":"E*F*DB----*****","DESCRIPTION":"School","MAPPING1U":"5320","MAPPING1F":"5320","MAPPING1N":"5320","MAPPING1H":"5320"},{"SYMBOLID":"E*F*EA----*****","DESCRIPTION":"Generation Station","MAPPING1U":"5323","MAPPING1F":"5323","MAPPING1N":"5323","MAPPING1H":"5323"},{"SYMBOLID":"E*F*EB----*****","DESCRIPTION":"Natural Gas Facility","MAPPING1U":"5325","MAPPING1F":"5325","MAPPING1N":"5325","MAPPING1H":"5325"},{"SYMBOLID":"E*F*EE----*****","DESCRIPTION":"Propane Facility","MAPPING1U":"5330","MAPPING1F":"5330","MAPPING1N":"5330","MAPPING1H":"5330","MAPPING2":"5331","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*F-----*****","DESCRIPTION":"Government Site Infrastructure","MAPPING1U":"5332","MAPPING1F":"5332","MAPPING1N":"5332","MAPPING1H":"5332","MAPPING2":"5333","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*G-----*****","DESCRIPTION":"Military Infrastructure","MAPPING1U":"5334","MAPPING1F":"5334","MAPPING1N":"5334","MAPPING1H":"5334","MAPPING2":"5335","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*GA----*****","DESCRIPTION":"Military Armory","MAPPING1U":"5336","MAPPING1F":"5336","MAPPING1N":"5336","MAPPING1H":"5336"},{"SYMBOLID":"E*F*H-----*****","DESCRIPTION":"Postal Service Infrastructure","MAPPING1U":"5338","MAPPING1F":"5338","MAPPING1N":"5338","MAPPING1H":"5338","MAPPING2":"5339","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*HA----*****","DESCRIPTION":"Postal Distribution Center","MAPPING1U":"5340","MAPPING1F":"5340","MAPPING1N":"5340","MAPPING1H":"5340","MAPPING2":"5341","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*HB----*****","DESCRIPTION":"Post Office","MAPPING1U":"5342","MAPPING1F":"5342","MAPPING1N":"5342","MAPPING1H":"5342","MAPPING2":"5343","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*I-----*****","DESCRIPTION":"Public Venues Infrastructure","MAPPING1U":"5344","MAPPING1F":"5344","MAPPING1N":"5344","MAPPING1H":"5344"},{"SYMBOLID":"E*F*IA----*****","DESCRIPTION":"Enclosed Facility","MAPPING1U":"5345","MAPPING1F":"5345","MAPPING1N":"5345","MAPPING1H":"5345","MAPPING2":"5346","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*IB----*****","DESCRIPTION":"Open Facility","MAPPING1U":"5347","MAPPING1F":"5347","MAPPING1N":"5347","MAPPING1H":"5347"},{"SYMBOLID":"E*F*IC----*****","DESCRIPTION":"Recreational Area","MAPPING1U":"5348","MAPPING1F":"5348","MAPPING1N":"5348","MAPPING1H":"5348"},{"SYMBOLID":"E*F*ID----*****","DESCRIPTION":"Religious Institution","MAPPING1U":"5349","MAPPING1F":"5349","MAPPING1N":"5349","MAPPING1H":"5349","MAPPING2":"5350","MAPPING2COLOR":"#FFFFFF"},{"SYMBOLID":"E*F*J-----*****","DESCRIPTION":"Special Needs Infrastructure","MAPPING1U":"5351","MAPPING1F":"5351","MAPPING1N":"5351","MAPPING1H":"5351"},{"SYMBOLID":"E*F*JA----*****","DESCRIPTION":"Adult Day Care","MAPPING1U":"5352","MAPPING1F":"5352","MAPPING1N":"5352","MAPPING1H":"5352"},{"SYMBOLID":"E*F*JB----*****","DESCRIPTION":"Child Day Care","MAPPING1U":"5353","MAPPING1F":"5353","MAPPING1N":"5353","MAPPING1H":"5353","MAPPING2":"5354","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*JC----*****","DESCRIPTION":"Elder Care","MAPPING1U":"5355","MAPPING1F":"5355","MAPPING1N":"5355","MAPPING1H":"5355"},{"SYMBOLID":"E*F*K-----*****","DESCRIPTION":"Telecommunications Infrastructure","MAPPING1U":"5356","MAPPING1F":"5356","MAPPING1N":"5356","MAPPING1H":"5356"},{"SYMBOLID":"E*F*KB----*****","DESCRIPTION":"Telecommunications Tower","MAPPING1U":"5358","MAPPING1F":"5358","MAPPING1N":"5358","MAPPING1H":"5358"},{"SYMBOLID":"E*F*LA----*****","DESCRIPTION":"Air Traffic Control Facility","MAPPING1U":"5360","MAPPING1F":"5360","MAPPING1N":"5360","MAPPING1H":"5360"},{"SYMBOLID":"E*F*LD----*****","DESCRIPTION":"Bus Station","MAPPING1U":"5363","MAPPING1F":"5363","MAPPING1N":"5363","MAPPING1H":"5363","MAPPING2":"5364","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*LE----*****","DESCRIPTION":"Ferry Terminal","MAPPING1U":"5365","MAPPING1F":"5365","MAPPING1N":"5365","MAPPING1H":"5365","MAPPING2":"5366","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*LF----*****","DESCRIPTION":"Helicopter Landing Site","MAPPING1U":"5367","MAPPING1F":"5367","MAPPING1N":"5367","MAPPING1H":"5367","MAPPING2":"5368","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*LH----*****","DESCRIPTION":"Maintenance Facility","MAPPING1U":"5370","MAPPING1F":"5370","MAPPING1N":"5370","MAPPING1H":"5370"},{"SYMBOLID":"E*F*LJ----*****","DESCRIPTION":"Rail Station","MAPPING1U":"5372","MAPPING1F":"5372","MAPPING1N":"5372","MAPPING1H":"5372"},{"SYMBOLID":"E*F*LK----*****","DESCRIPTION":"Rest Stop","MAPPING1U":"5373","MAPPING1F":"5373","MAPPING1N":"5373","MAPPING1H":"5373"},{"SYMBOLID":"E*F*LM----*****","DESCRIPTION":"Toll Facility","MAPPING1U":"5375","MAPPING1F":"5375","MAPPING1N":"5375","MAPPING1H":"5375","MAPPING2":"5376","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*LO----*****","DESCRIPTION":"Traffic Inspection Facility","MAPPING1U":"5378","MAPPING1F":"5378","MAPPING1N":"5378","MAPPING1H":"5378","MAPPING2":"5379","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*LP----*****","DESCRIPTION":"Tunnel","MAPPING1U":"5380","MAPPING1F":"5380","MAPPING1N":"5380","MAPPING1H":"5380","MAPPING2":"5381","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*MA----*****","DESCRIPTION":"Control Valve","MAPPING1U":"5383","MAPPING1F":"5383","MAPPING1N":"5383","MAPPING1H":"5383"},{"SYMBOLID":"E*F*MB----*****","DESCRIPTION":"Dam","MAPPING1U":"5384","MAPPING1F":"5384","MAPPING1N":"5384","MAPPING1H":"5384"},{"SYMBOLID":"E*F*MC----*****","DESCRIPTION":"Discharge Outfall","MAPPING1U":"5385","MAPPING1F":"5385","MAPPING1N":"5385","MAPPING1H":"5385"},{"SYMBOLID":"E*F*MD----*****","DESCRIPTION":"Ground Water Well","MAPPING1U":"5386","MAPPING1F":"5386","MAPPING1N":"5386","MAPPING1H":"5386"},{"SYMBOLID":"E*F*ME----*****","DESCRIPTION":"Pumping Station","MAPPING1U":"5387","MAPPING1F":"5387","MAPPING1N":"5387","MAPPING1H":"5387","MAPPING2":"5388","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*MF----*****","DESCRIPTION":"Reservoir","MAPPING1U":"5389","MAPPING1F":"5389","MAPPING1N":"5389","MAPPING1H":"5389","MAPPING2":"5390","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*MG----*****","DESCRIPTION":"Storage Tower","MAPPING1U":"5391","MAPPING1F":"5391","MAPPING1N":"5391","MAPPING1H":"5391","MAPPING2":"5392","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*MH----*****","DESCRIPTION":"Surface Water Intake","MAPPING1U":"5393","MAPPING1F":"5393","MAPPING1N":"5393","MAPPING1H":"5393","MAPPING2":"5394","MAPPING2COLOR":"FFFFFF"},{"SYMBOLID":"E*F*MI----*****","DESCRIPTION":"Wastewater Treatment Facility","MAPPING1U":"5395","MAPPING1F":"5395","MAPPING1N":"5395","MAPPING1H":"5395","MAPPING2":"5396","MAPPING2COLOR":"FFFFFF"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.xml=armyc2.c2sd.renderer.xml||{};armyc2.c2sd.renderer.xml.UnitConstantsC={"UNITCONSTANTS":{"SYMBOL":[{"SYMBOLID":"S***------*****","DESCRIPTION":"Warfighting Symbology","DRAWCATEGORY":"0","HIERARCHY":"1.X","ALPHAHIERARCHY":"WAR"},{"SYMBOLID":"S*P*------*****","DESCRIPTION":"Space Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.1","ALPHAHIERARCHY":"WAR.SPC","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*P*S-----*****","DESCRIPTION":"Satellite","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.1","ALPHAHIERARCHY":"WAR.SPC.SAT","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*V-----*****","DESCRIPTION":"Crewed Space Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.2","ALPHAHIERARCHY":"WAR.SPC.CSV","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*T-----*****","DESCRIPTION":"Space Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.3","ALPHAHIERARCHY":"WAR.SPC.SST","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*P*L-----*****","DESCRIPTION":"Space Launch Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.1.4","ALPHAHIERARCHY":"WAR.SPC.SLV","PATH":"Warfighting Symbology/Space Track"},{"SYMBOLID":"S*A*------*****","DESCRIPTION":"Air Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.2","ALPHAHIERARCHY":"WAR.AIRTRK","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*A*M-----*****","DESCRIPTION":"Military","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*MF----*****","DESCRIPTION":"Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*MFB---*****","DESCRIPTION":"Fixed Wing Bomber","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.BMB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFF---*****","DESCRIPTION":"Fixed Wing Fighter","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.FTR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFFI--*****","DESCRIPTION":"Fixed Wing Interceptor","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.FTR.INCR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Fighter"},{"SYMBOLID":"S*A*MFT---*****","DESCRIPTION":"Fixed Wing Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNE","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFA---*****","DESCRIPTION":"Attack/Strike","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ATK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFL---*****","DESCRIPTION":"Fixed Wing VSTOL","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.VSTOL","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFK---*****","DESCRIPTION":"Fixed Wing Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFKB--*****","DESCRIPTION":"Fixed Wing Tanker Boom-Only","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK.BOOM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Tanker"},{"SYMBOLID":"S*A*MFKD--*****","DESCRIPTION":"Fixed Wing Tanker Drouge-Only","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.6.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.TNK.DROG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Tanker"},{"SYMBOLID":"S*A*MFC---*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Transport)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFCL--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.LIT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFCM--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.MDM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFCH--*****","DESCRIPTION":"Fixed Wing Cargo Airlift (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.7.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CGOALT.HVY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Cargo Airlift (Transport)"},{"SYMBOLID":"S*A*MFJ---*****","DESCRIPTION":"Fixed Wing ECM/Jammer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFO---*****","DESCRIPTION":"Fixed Wing MEDEVAC","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFR---*****","DESCRIPTION":"Fixed Wing Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFRW--*****","DESCRIPTION":"Fixed Wing Airborne Early Warning (AEW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.ABNEW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFRZ--*****","DESCRIPTION":"Fixed Wing Electronic Surveillance Measures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.ESM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFRX--*****","DESCRIPTION":"Fixed Wing Photographic","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.10.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.RECON.PHG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Reconnaissance"},{"SYMBOLID":"S*A*MFP---*****","DESCRIPTION":"Fixed Wing Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFPN--*****","DESCRIPTION":"Patrol Antisurface Warfare (ASUW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT.ASUW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Patrol"},{"SYMBOLID":"S*A*MFPM--*****","DESCRIPTION":"Fixed Wing Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.11.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.PAT.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Patrol"},{"SYMBOLID":"S*A*MFU---*****","DESCRIPTION":"Fixed Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFUL--*****","DESCRIPTION":"Fixed Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.LIT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFUM--*****","DESCRIPTION":"Fixed Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.MDM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFUH--*****","DESCRIPTION":"Fixed Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.12.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.UTY.HVY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Fixed Wing Utility"},{"SYMBOLID":"S*A*MFY---*****","DESCRIPTION":"Fixed Wing Communications (C3I)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.COMM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFH---*****","DESCRIPTION":"Fixed Wing Combat Search and Rescue (CSAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFD---*****","DESCRIPTION":"Fixed Wing Airborne Command Post (C2)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.15","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFQ---*****","DESCRIPTION":"Drone (RPV/UAV) Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFQA--*****","DESCRIPTION":"Drone Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ATK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQB--*****","DESCRIPTION":"Drone Bomber","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.BMB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQC--*****","DESCRIPTION":"Drone Cargo","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.CGO","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQD--*****","DESCRIPTION":"Drone (RPV/UAV) Airborne Command Post","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQF--*****","DESCRIPTION":"Drone Fighter","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.FTR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQH--*****","DESCRIPTION":"Search & Rescue (CSAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQJ--*****","DESCRIPTION":"Drone Electronic Countermeasures (Jammer)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQK--*****","DESCRIPTION":"Drone Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.TNK","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQL--*****","DESCRIPTION":"Drone Vstol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.VSTOL","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQM--*****","DESCRIPTION":"Drone Special Operations Forces (SOF)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.SOF","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQI--*****","DESCRIPTION":"Drone Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQN--*****","DESCRIPTION":"Drone Anti-Surface Warfare (ASUW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ASUW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQP--*****","DESCRIPTION":"Drone Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.PAT","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQR--*****","DESCRIPTION":"Drone Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQRW-*****","DESCRIPTION":"Drone Airborne Early Warning (AEW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.ABNEW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQRZ-*****","DESCRIPTION":"Drone Electronic Surveillance Measures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.ESM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQRX-*****","DESCRIPTION":"Drone Photographic","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.14.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.RECON.PHG","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing/Drone Reconnaissance"},{"SYMBOLID":"S*A*MFQS--*****","DESCRIPTION":"Drone Anti-Submarine Warfare (ASW)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.15","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.ASBW","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQT--*****","DESCRIPTION":"Drone Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.16","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.TNE","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQU--*****","DESCRIPTION":"Drone Utility Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.17","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.UTY","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQY--*****","DESCRIPTION":"Drone Communications (C3I)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.18","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.COMM","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFQO--*****","DESCRIPTION":"Drone Medevac","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.16.19","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.DRN.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing/Drone (RPV-UAV) Fixed Wing"},{"SYMBOLID":"S*A*MFS---*****","DESCRIPTION":"Antisubmarine Warfare (ASW) Carrier Based","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.17","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.ASBWCB","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MFM---*****","DESCRIPTION":"Fixed Wing Special Operations Forces (SOF)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.1.18","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.FIXD.SOF","PATH":"Warfighting Symbology/Air Track/Military/Fixed Wing"},{"SYMBOLID":"S*A*MH----*****","DESCRIPTION":"Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*MHA---*****","DESCRIPTION":"Rotary Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ATK","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHS---*****","DESCRIPTION":"Antisubmarine Warfare/MPA ROTARY WING","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ASBW","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHU---*****","DESCRIPTION":"Rotary Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHUL--*****","DESCRIPTION":"Rotary Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.LIT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHUM--*****","DESCRIPTION":"Rotary Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.MDM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHUH--*****","DESCRIPTION":"Rotary Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.3.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.UTY.HVY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Utility"},{"SYMBOLID":"S*A*MHI---*****","DESCRIPTION":"Rotary Wing Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.MNECM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHH---*****","DESCRIPTION":"Rotary Wing Combat Search and Rescue(Military)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CSAR","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHR---*****","DESCRIPTION":"Rotary Wing Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.6","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.RECON","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHQ---*****","DESCRIPTION":"Drone (RPV/UAV) Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.7","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.DRN","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHC---*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Transport)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHCL--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.1","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.LIT","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHCM--*****","DESCRIPTION":"Rotary Wing Cargo AirLift (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.2","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.MDM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHCH--*****","DESCRIPTION":"Rotary Wing Cargo Airlift (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.8.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.CGOALT.HVY","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing/Rotary Wing Cargo AirLift (Transport)"},{"SYMBOLID":"S*A*MHT---*****","DESCRIPTION":"Rotary Wing Trainer","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.9","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.TNE","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHO---*****","DESCRIPTION":"Rotary Wing MEDEVAC","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.10","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.MEDV","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHM---*****","DESCRIPTION":"Rotary Wing Special Operations Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.11","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.SOF","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHD---*****","DESCRIPTION":"Rotary Wing Airborne Command Post","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.12","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ABNCP","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHK---*****","DESCRIPTION":"Rotary Wing Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.13","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.TNK","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*MHJ---*****","DESCRIPTION":"Rotary Wing ECM/Jammer(TANKER)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.2.14","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ROT.ECM","PATH":"Warfighting Symbology/Air Track/Military/Rotary Wing"},{"SYMBOLID":"S*A*ML----*****","DESCRIPTION":"Military Aircraft Lighter Than Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.LTA","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*MV----*****","DESCRIPTION":"VIP","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.VIP","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*ME----*****","DESCRIPTION":"Escort","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.1.5","ALPHAHIERARCHY":"WAR.AIRTRK.MIL.ESCORT","PATH":"Warfighting Symbology/Air Track/Military"},{"SYMBOLID":"S*A*W-----*****","DESCRIPTION":"Air Track Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*WM----*****","DESCRIPTION":"Missile In Flight","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF","PATH":"Warfighting Symbology/Air Track/Air Track Weapon"},{"SYMBOLID":"S*A*WMS---*****","DESCRIPTION":"Surface Launched Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMSS--*****","DESCRIPTION":"Surface to Surface Missile (SSM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SSM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSA--*****","DESCRIPTION":"Surface To Air Missile (SAM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SAM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSU--*****","DESCRIPTION":"Surface to Subsurface Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.SSUM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMSB--*****","DESCRIPTION":"Anti-Ballistic Missile (ABM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SLM.ABM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Surface Launched Missile"},{"SYMBOLID":"S*A*WMA---*****","DESCRIPTION":"Air Launched Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMAS--*****","DESCRIPTION":"Air To Surface Missile (ASM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.1","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.ASM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMAA--*****","DESCRIPTION":"Air To Air Missile (AAM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.AAM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMAP--*****","DESCRIPTION":"Air to Space Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.ALM.ASPC","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight/Air Launched Missile"},{"SYMBOLID":"S*A*WMU---*****","DESCRIPTION":"Subsurface To Surface Missile (S/SSM)","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.SBSM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMCM--*****","DESCRIPTION":"Cruise Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.4","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.CM","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WMB---*****","DESCRIPTION":"Ballistic Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.1.5","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.MSLIF.BLST","PATH":"Warfighting Symbology/Air Track/Air Track Weapon/Missile In Flight"},{"SYMBOLID":"S*A*WD----*****","DESCRIPTION":"Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.2","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.DCY","PATH":"Warfighting Symbology/Air Track/Weapon"},{"SYMBOLID":"S*A*WB----*****","DESCRIPTION":"Bomb","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.WPN.BM","PATH":"Warfighting Symbology/Air Track/Weapon"},{"SYMBOLID":"S*A*C-----*****","DESCRIPTION":"Civil Aircraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3","ALPHAHIERARCHY":"WAR.AIRTRK.CVL","PATH":"Warfighting Symbology/Air Track"},{"SYMBOLID":"S*A*CF----*****","DESCRIPTION":"Civil Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.1","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.FIXD","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*A*CH----*****","DESCRIPTION":"Civil Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.2","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.ROT","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*A*CL----*****","DESCRIPTION":"Civil Aircraft Lighter Than Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.2.3.3","ALPHAHIERARCHY":"WAR.AIRTRK.CVL.LTA","PATH":"Warfighting Symbology/Air Track/Civil Aircraft"},{"SYMBOLID":"S*G*------*****","DESCRIPTION":"Ground Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.3","ALPHAHIERARCHY":"WAR.GRDTRK","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*G*U-----*****","DESCRIPTION":"Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*UC----*****","DESCRIPTION":"Combat","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*UCD---*****","DESCRIPTION":"Air Defense","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCDS--*****","DESCRIPTION":"Short Range","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDSC-*****","DESCRIPTION":"Chaparral","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.CPL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDSS-*****","DESCRIPTION":"Stinger","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.STG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDSV-*****","DESCRIPTION":"Vulcan","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.SHTR.VUL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Short Range"},{"SYMBOLID":"S*G*UCDM--*****","DESCRIPTION":"Air Defense Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDML-*****","DESCRIPTION":"Air Defense Missile Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDMLA*****","DESCRIPTION":"Air Defense Missile Motorized (Avenger)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.LIT.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/Air Defense Missile Light"},{"SYMBOLID":"S*G*UCDMM-*****","DESCRIPTION":"Air Defense Missile Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDMH-*****","DESCRIPTION":"Air Defense Missile Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDH--*****","DESCRIPTION":"H/MAD","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile"},{"SYMBOLID":"S*G*UCDHH-*****","DESCRIPTION":"Hawk","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD.HWK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/H and MAD"},{"SYMBOLID":"S*G*UCDHP-*****","DESCRIPTION":"Patriot","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.MSL.HMAD.PATT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense/Air Defense Missile/H and MAD"},{"SYMBOLID":"S*G*UCDG--*****","DESCRIPTION":"Gun Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.GUNUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDC--*****","DESCRIPTION":"Air Defense Composite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.CMPS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDT--*****","DESCRIPTION":"Targeting Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.TGTGUT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCDO--*****","DESCRIPTION":"Theater Missile Defense Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ADF.TMDU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Air Defense"},{"SYMBOLID":"S*G*UCA---*****","DESCRIPTION":"Armor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCAT--*****","DESCRIPTION":"Armor Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor"},{"SYMBOLID":"S*G*UCATA-*****","DESCRIPTION":"Armor Track Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATW-*****","DESCRIPTION":"Armor Track Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATWR*****","DESCRIPTION":"Armor Track Amphibious Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.AMP.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track/Armor Track Amphibious"},{"SYMBOLID":"S*G*UCATL-*****","DESCRIPTION":"Armor Track, Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATM-*****","DESCRIPTION":"Armor Track, Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATH-*****","DESCRIPTION":"Armor Track, Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCATR-*****","DESCRIPTION":"Armor Track, Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.TRK.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor Track"},{"SYMBOLID":"S*G*UCAW--*****","DESCRIPTION":"Armor, Wheeled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor"},{"SYMBOLID":"S*G*UCAWS-*****","DESCRIPTION":"Armor, Wheeled Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWA-*****","DESCRIPTION":"Armor, Wheeled Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWW-*****","DESCRIPTION":"Armor, Wheeled Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWWR*****","DESCRIPTION":"Armor, Wheeled Amphibious Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.AMP.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled/Armor, Wheeled Amphibious"},{"SYMBOLID":"S*G*UCAWL-*****","DESCRIPTION":"Armor, Wheeled Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWM-*****","DESCRIPTION":"Armor, Wheeled Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWH-*****","DESCRIPTION":"Armor, Wheeled Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAWR-*****","DESCRIPTION":"Armor, Wheeled Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ARM.WHD.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Armor/Armor, Wheeled"},{"SYMBOLID":"S*G*UCAA--*****","DESCRIPTION":"Anti Armor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCAAD-*****","DESCRIPTION":"Anti Armor Dismounted","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAL-*****","DESCRIPTION":"Anti Armor Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAM-*****","DESCRIPTION":"Anti Armor Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAS-*****","DESCRIPTION":"Anti Armor Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAU-*****","DESCRIPTION":"Anti Armor Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAC-*****","DESCRIPTION":"Anti Armor Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAA-*****","DESCRIPTION":"Anti Armor Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAAT*****","DESCRIPTION":"Anti Armor Armored Tracked","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.TKD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAAW*****","DESCRIPTION":"Anti Armor Armored Wheeled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.WHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAAS*****","DESCRIPTION":"Anti Armor Armored Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.ARMD.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Armored"},{"SYMBOLID":"S*G*UCAAO-*****","DESCRIPTION":"Anti Armor Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor"},{"SYMBOLID":"S*G*UCAAOS*****","DESCRIPTION":"Anti Armor Motorized Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.3.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AARM.MOT.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Anti Armor/Anti Armor Motorized"},{"SYMBOLID":"S*G*UCV---*****","DESCRIPTION":"Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCVF--*****","DESCRIPTION":"Aviation Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVFU-*****","DESCRIPTION":"Utility Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.UTY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVFA-*****","DESCRIPTION":"Fixed Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.ATK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVFR-*****","DESCRIPTION":"Recon Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.FIXD.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Fixed Wing"},{"SYMBOLID":"S*G*UCVR--*****","DESCRIPTION":"Aviation Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVRA-*****","DESCRIPTION":"Attack Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.ATK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRS-*****","DESCRIPTION":"Scout Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.SCUT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRW-*****","DESCRIPTION":"Antisubmarine Warfare Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.ASBW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRU-*****","DESCRIPTION":"Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRUL*****","DESCRIPTION":"Light Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUM*****","DESCRIPTION":"Medium Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUH*****","DESCRIPTION":"Heavy Utility Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.UTY.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing/Utility Rotary Wing"},{"SYMBOLID":"S*G*UCVRUC*****","DESCRIPTION":"C2 Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.C2","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRUE*****","DESCRIPTION":"Medevac Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.MEDV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVRM-*****","DESCRIPTION":"Mine Countermeasure Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.ROT.MNECM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Aviation Rotary Wing"},{"SYMBOLID":"S*G*UCVS--*****","DESCRIPTION":"Search and Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.SAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVC--*****","DESCRIPTION":"Aviation Composite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.CMPS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVV--*****","DESCRIPTION":"Vertical/Short Takeoff And Landing (V/Stol)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.VSTOL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVU--*****","DESCRIPTION":"Unmanned Aerial Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation"},{"SYMBOLID":"S*G*UCVUF-*****","DESCRIPTION":"Unmanned Aerial Vehicle Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV.FIXD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Unmanned Aerial Vehicle"},{"SYMBOLID":"S*G*UCVUR-*****","DESCRIPTION":"Unmanned Aerial Vehicle Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.AVN.UAV.ROT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Aviation/Unmanned Aerial Vehicle"},{"SYMBOLID":"S*G*UCI---*****","DESCRIPTION":"Infantry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCIL--*****","DESCRIPTION":"Infantry Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIM--*****","DESCRIPTION":"Infantry Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIO--*****","DESCRIPTION":"Infantry Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIA--*****","DESCRIPTION":"Infantry Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIS--*****","DESCRIPTION":"Infantry Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIZ--*****","DESCRIPTION":"Infantry Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIN--*****","DESCRIPTION":"Infantry Naval","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.NAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCII--*****","DESCRIPTION":"Infantry Fighting Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.INFFV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCIC--*****","DESCRIPTION":"Infantry Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.5.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.INF.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Infantry"},{"SYMBOLID":"S*G*UCE---*****","DESCRIPTION":"Engineer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCEC--*****","DESCRIPTION":"Engineer Combat","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer"},{"SYMBOLID":"S*G*UCECS-*****","DESCRIPTION":"Engineer Combat Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECA-*****","DESCRIPTION":"Engineer Combat Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECC-*****","DESCRIPTION":"Engineer Combat Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECL-*****","DESCRIPTION":"Engineer Combat Light (Sapper)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECM-*****","DESCRIPTION":"Engineer Combat Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECH-*****","DESCRIPTION":"Engineer Combat Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECT-*****","DESCRIPTION":"Engineer Combat Mechanized (Track)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECW-*****","DESCRIPTION":"Engineer Combat Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECO-*****","DESCRIPTION":"Engineer Combat Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCECR-*****","DESCRIPTION":"Engineer Combat Recon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CBT.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Combat"},{"SYMBOLID":"S*G*UCEN--*****","DESCRIPTION":"Engineer Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CSN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer"},{"SYMBOLID":"S*G*UCENN-*****","DESCRIPTION":"Engineer Naval Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.6.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ENG.CSN.NAV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Engineer/Engineer Construction"},{"SYMBOLID":"S*G*UCF---*****","DESCRIPTION":"Field Artillery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCFH--*****","DESCRIPTION":"Howitzer/Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFHE-*****","DESCRIPTION":"Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.SPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHS-*****","DESCRIPTION":"Howitzer/Gun Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHA-*****","DESCRIPTION":"Howitzer/Gun Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHC-*****","DESCRIPTION":"Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHO-*****","DESCRIPTION":"Howitzer/Gun Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHL-*****","DESCRIPTION":"Howitzer/Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHM-*****","DESCRIPTION":"Howitzer/Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.MDM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHH-*****","DESCRIPTION":"Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFHX-*****","DESCRIPTION":"Amphibious","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.HOW.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Howitzer and Gun"},{"SYMBOLID":"S*G*UCFR--*****","DESCRIPTION":"Rocket","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFRS-*****","DESCRIPTION":"Rocket Single Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket"},{"SYMBOLID":"S*G*UCFRSS*****","DESCRIPTION":"Single Rocket Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRSPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRSR*****","DESCRIPTION":"Single Rocket Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRST*****","DESCRIPTION":"Single Rocket Towed","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.SRL.SRTOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Rocket Single Rocket Launcher"},{"SYMBOLID":"S*G*UCFRM-*****","DESCRIPTION":"Multi Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket"},{"SYMBOLID":"S*G*UCFRMS*****","DESCRIPTION":"Multi Rocket Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRSPD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFRMR*****","DESCRIPTION":"Multi Rocket Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFRMT*****","DESCRIPTION":"Multi Rocket Towed","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ROC.MRL.MRTOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Rocket/Multi Rocket Launcher"},{"SYMBOLID":"S*G*UCFT--*****","DESCRIPTION":"Target Acquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFTR-*****","DESCRIPTION":"Target Acquisition Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.RAD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTS-*****","DESCRIPTION":"Sound","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.SND","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTF-*****","DESCRIPTION":"Flash (Optical)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.FLH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTC-*****","DESCRIPTION":"Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFTCD*****","DESCRIPTION":"Dismounted Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition/Colt and Fist"},{"SYMBOLID":"S*G*UCFTCM*****","DESCRIPTION":"Tracked Colt/Fist","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.CLT.TKD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition/Colt and Fist"},{"SYMBOLID":"S*G*UCFTA-*****","DESCRIPTION":"Anglico","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.TGTAQ.ANG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Target Acquisition"},{"SYMBOLID":"S*G*UCFM--*****","DESCRIPTION":"Field Artillery Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFMS-*****","DESCRIPTION":"Self-Propelled (SP) Tracked Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.SPDTRK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMW-*****","DESCRIPTION":"SP Wheeled Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.SPDWHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMT-*****","DESCRIPTION":"Towed Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFMTA*****","DESCRIPTION":"Towed Airborne Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTS*****","DESCRIPTION":"Towed Air Assault Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTC*****","DESCRIPTION":"Towed Arctic Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFMTO*****","DESCRIPTION":"Towed Mountain Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.TOW.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar/Towed Mortar"},{"SYMBOLID":"S*G*UCFML-*****","DESCRIPTION":"Amphibious Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.MORT.AMP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Mortar"},{"SYMBOLID":"S*G*UCFS--*****","DESCRIPTION":"Artillery Survey","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFSS-*****","DESCRIPTION":"Artillery Survey Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSA-*****","DESCRIPTION":"Artillery Survey Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSL-*****","DESCRIPTION":"Artillery Survey Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFSO-*****","DESCRIPTION":"Artillery Survey Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.ARTSVY.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Artillery Survey"},{"SYMBOLID":"S*G*UCFO--*****","DESCRIPTION":"Field Artillery Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery"},{"SYMBOLID":"S*G*UCFOS-*****","DESCRIPTION":"Air Assault Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorologicall"},{"SYMBOLID":"S*G*UCFOA-*****","DESCRIPTION":"Airborne Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCFOL-*****","DESCRIPTION":"Light Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCFOO-*****","DESCRIPTION":"Mountain Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.7.6.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.FLDART.METO.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Field Artillery/Field Artillery Meteorological"},{"SYMBOLID":"S*G*UCR---*****","DESCRIPTION":"Combat Reconnaissance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCRH--*****","DESCRIPTION":"Reconnaissance Horse","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.HRE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRV--*****","DESCRIPTION":"Reconnaissance Cavalry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRVA-*****","DESCRIPTION":"Reconnaissance Cavalry Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.ARMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVM-*****","DESCRIPTION":"Reconnaissance Cavalry Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVG-*****","DESCRIPTION":"Reconnaissance Cavalry Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.GRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRVO-*****","DESCRIPTION":"Reconnaissance Cavalry Air","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.CVY.AIR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Cavalry"},{"SYMBOLID":"S*G*UCRC--*****","DESCRIPTION":"Reconnaissance Arctic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.ARC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRS--*****","DESCRIPTION":"Reconnaissance Air Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.AAST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRA--*****","DESCRIPTION":"Reconnaissance Airborne","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.ABN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRO--*****","DESCRIPTION":"Reconnaissance Mountain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRL--*****","DESCRIPTION":"Reconnaissance Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.LIT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRR--*****","DESCRIPTION":"Reconnaissance Marine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCRRD-*****","DESCRIPTION":"Reconnaissance Marine Division","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.DIV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRRF-*****","DESCRIPTION":"Reconnaissance Marine Force","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.FOR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRRL-*****","DESCRIPTION":"Reconnaissance Marine Light Armored (LAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.MAR.LAR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance/Reconnaissance Marine"},{"SYMBOLID":"S*G*UCRX--*****","DESCRIPTION":"Reconnaissance Long Range Surveillance (LRS)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.8.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.RECON.LRS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Combat Reconnaissance"},{"SYMBOLID":"S*G*UCM---*****","DESCRIPTION":"Missile (Surf-Surf)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCMT--*****","DESCRIPTION":"Missile (Surf-Surf) Tactical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL.TAC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Missile (Surf-Surf)"},{"SYMBOLID":"S*G*UCMS--*****","DESCRIPTION":"Missile (Surf-Surf) Strategic","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.MSL.STGC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Missile (Surf-Surf)"},{"SYMBOLID":"S*G*UCS---*****","DESCRIPTION":"Internal Security Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UCSW--*****","DESCRIPTION":"Internal Security Forces Riverine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.RIV","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSG--*****","DESCRIPTION":"Internal Security Forces Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSGD-*****","DESCRIPTION":"Internal Security Forces Dismounted","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.DMD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSGM-*****","DESCRIPTION":"Internal Security Forces Motorized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSGA-*****","DESCRIPTION":"Internal Security Forces Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.GRD.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces/Internal Security Forces Ground"},{"SYMBOLID":"S*G*UCSM--*****","DESCRIPTION":"Internal Security Forces Wheeled Mechanized","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.WHMECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSR--*****","DESCRIPTION":"Internal Security Forces Railroad","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.RALRD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCSA--*****","DESCRIPTION":"Internal Security Forces Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.10.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.ISF.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat/Internal Security Forces"},{"SYMBOLID":"S*G*UCL---*****","DESCRIPTION":"Surveillance Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CBT.SVL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat"},{"SYMBOLID":"S*G*UU----*****","DESCRIPTION":"Combat Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*UUA---*****","DESCRIPTION":"Combat Support NBC","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUAC--*****","DESCRIPTION":"Combat Support Chemical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUACC-*****","DESCRIPTION":"Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACCK*****","DESCRIPTION":"Mechanized Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC.MECH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke and Decon"},{"SYMBOLID":"S*G*UUACCM*****","DESCRIPTION":"Motorized Smoke/Decon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMKDEC.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke and Decon"},{"SYMBOLID":"S*G*UUACS-*****","DESCRIPTION":"Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACSM*****","DESCRIPTION":"Motorized Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK.MOT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke"},{"SYMBOLID":"S*G*UUACSA*****","DESCRIPTION":"Armor Smoke","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.SMK.ARM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Smoke"},{"SYMBOLID":"S*G*UUACR-*****","DESCRIPTION":"Chemical Recon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical"},{"SYMBOLID":"S*G*UUACRW*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON.WARMVH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Chemical Recon"},{"SYMBOLID":"S*G*UUACRS*****","DESCRIPTION":"Chemical Wheeled Armored Vehicle Reconnaissance Surveillance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.CML.RECON.WAVS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support Chemical/Chemical Recon"},{"SYMBOLID":"S*G*UUAN--*****","DESCRIPTION":"Combat Support NBC Nuclear","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.NUC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUAB--*****","DESCRIPTION":"Combat Support NBC Biological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.BIO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUABR-*****","DESCRIPTION":"Recon Equipped","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.BIO.RECEQP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC/Combat Support NBC Biological"},{"SYMBOLID":"S*G*UUAD--*****","DESCRIPTION":"NBC Decontamination","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.NBC.DECON","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Combat Support NBC"},{"SYMBOLID":"S*G*UUM---*****","DESCRIPTION":"Military Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUMA--*****","DESCRIPTION":"Aerial Exploitation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.AEREXP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMS--*****","DESCRIPTION":"Signal Intelligence (SIGINT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMSE-*****","DESCRIPTION":"Electronic Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)"},{"SYMBOLID":"S*G*UUMSEA*****","DESCRIPTION":"Armored Wheeled Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.ARMWVH","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSED*****","DESCRIPTION":"Direction Finding","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.DFN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEI*****","DESCRIPTION":"Intercept","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.INC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEJ*****","DESCRIPTION":"Jamming","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.JMG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSET*****","DESCRIPTION":"Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMSEC*****","DESCRIPTION":"Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SIGINT.ECW.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Signal Intelligence (SIGINT)/Electronic Warfare"},{"SYMBOLID":"S*G*UUMC--*****","DESCRIPTION":"Counter Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.CINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMR--*****","DESCRIPTION":"Counter Intelligence Surveillance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMRG-*****","DESCRIPTION":"Ground Surveillance Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.GRDSR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMRS-*****","DESCRIPTION":"Surveillance Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.SNS","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMRSS*****","DESCRIPTION":"Sensor SCM","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.SNS.SCM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance/Surveillance Sensor"},{"SYMBOLID":"S*G*UUMRX-*****","DESCRIPTION":"Ground Station Module","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.GRDSM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMMO-*****","DESCRIPTION":"Surveillance Meteorological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.SVL.METO","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence/Counter Intelligence Surveillance"},{"SYMBOLID":"S*G*UUMO--*****","DESCRIPTION":"Military Intelligence Operations","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.OPN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMT--*****","DESCRIPTION":"Tactical Exploit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.TACEXP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMQ--*****","DESCRIPTION":"Interrogation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.INTGN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUMJ--*****","DESCRIPTION":"Joint Intelligence Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.2.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.MILINT.JINTCT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Military Intelligence"},{"SYMBOLID":"S*G*UUL---*****","DESCRIPTION":"Law Enforcement Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UULS--*****","DESCRIPTION":"Shore Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.SHRPAT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULM--*****","DESCRIPTION":"Military Police","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.MILP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULC--*****","DESCRIPTION":"Civilian Law Enforcement","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.CLE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULF--*****","DESCRIPTION":"Security Police (Air)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.SECPOL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UULD--*****","DESCRIPTION":"Central Intelligence Division (CID)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LAWENU.CID","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Law Enforcement Unit"},{"SYMBOLID":"S*G*UUS---*****","DESCRIPTION":"Signal Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUSA--*****","DESCRIPTION":"Area","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.ARA","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSC--*****","DESCRIPTION":"Communication Configured Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.COMCP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSCL-*****","DESCRIPTION":"Large Communication Configured Package (LCCP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.COMCP.LCCP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Communication Configured Package"},{"SYMBOLID":"S*G*UUSO--*****","DESCRIPTION":"Command Operations","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.CMDOPN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSF--*****","DESCRIPTION":"Forward Communications","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.FWDCOM","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSM--*****","DESCRIPTION":"Multiple Subscriber Element","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSMS-*****","DESCRIPTION":"Small Extension Node","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.SEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSML-*****","DESCRIPTION":"Large Extension Node","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.LEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSMN-*****","DESCRIPTION":"Node Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.MSE.NODCTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Multiple Subscriber Element"},{"SYMBOLID":"S*G*UUSR--*****","DESCRIPTION":"Radio Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSRS-*****","DESCRIPTION":"Tactical Satellite","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.TACSAT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSRT-*****","DESCRIPTION":"Teletype Center","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.TTYCTR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSRW-*****","DESCRIPTION":"Relay","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.RDOUNT.RLY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit/Radio Unit"},{"SYMBOLID":"S*G*UUSS--*****","DESCRIPTION":"Signal Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.SIGSUP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSW--*****","DESCRIPTION":"Telephone Switch","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.PHOSWT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUSX--*****","DESCRIPTION":"Electronic Ranging","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.4.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.SIGUNT.ECRG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support/Signal Unit"},{"SYMBOLID":"S*G*UUI---*****","DESCRIPTION":"Information Warfare Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.IWU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUP---*****","DESCRIPTION":"Landing Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.LNDSUP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*UUE---*****","DESCRIPTION":"Explosive Ordnance Disposal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CS.EOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Support"},{"SYMBOLID":"S*G*US----*****","DESCRIPTION":"Combat Service Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*USA---*****","DESCRIPTION":"Administrative (ADMIN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USAT--*****","DESCRIPTION":"Admin Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAC--*****","DESCRIPTION":"Admin Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAJ--*****","DESCRIPTION":"Judge Advocate General (JAG)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAJT-*****","DESCRIPTION":"JAG Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Judge Advocate General (JAG)"},{"SYMBOLID":"S*G*USAJC-*****","DESCRIPTION":"JAG Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.JAG.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Judge Advocate General (JAG)"},{"SYMBOLID":"S*G*USAO--*****","DESCRIPTION":"Postal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAOT-*****","DESCRIPTION":"Postal Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Postal"},{"SYMBOLID":"S*G*USAOC-*****","DESCRIPTION":"Postal Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PST.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Postal"},{"SYMBOLID":"S*G*USAF--*****","DESCRIPTION":"Finance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAFT-*****","DESCRIPTION":"Finance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Finance"},{"SYMBOLID":"S*G*USAFC-*****","DESCRIPTION":"Finance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.FIN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Finance"},{"SYMBOLID":"S*G*USAS--*****","DESCRIPTION":"Personnel Services","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAST-*****","DESCRIPTION":"Personnel Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Personnel Services"},{"SYMBOLID":"S*G*USASC-*****","DESCRIPTION":"Personnel Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PERSVC.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Personnel Services"},{"SYMBOLID":"S*G*USAM--*****","DESCRIPTION":"Mortuary/Graves Registry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAMT-*****","DESCRIPTION":"Mortuary/Graves Registry Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Mortuary and Graves Registry"},{"SYMBOLID":"S*G*USAMC-*****","DESCRIPTION":"Mortuary/Graves Registry Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MTRY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Mortuary and Graves Registry"},{"SYMBOLID":"S*G*USAR--*****","DESCRIPTION":"Religious/Chaplain","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USART-*****","DESCRIPTION":"Religious/Chaplain Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Religious and Chaplain"},{"SYMBOLID":"S*G*USARC-*****","DESCRIPTION":"Religious/Chaplain Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RELG.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Religious and Chaplain"},{"SYMBOLID":"S*G*USAP--*****","DESCRIPTION":"Public Affairs","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAPT-*****","DESCRIPTION":"Public Affairs Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPC-*****","DESCRIPTION":"Public Affairs Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPB-*****","DESCRIPTION":"Public Affairs Broadcast","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPBT*****","DESCRIPTION":"Public Affairs Broadcast Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Broadcast"},{"SYMBOLID":"S*G*USAPBC*****","DESCRIPTION":"Public Affairs Broadcast Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.BRCT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Broadcast"},{"SYMBOLID":"S*G*USAPM-*****","DESCRIPTION":"Public Affairs Joint Information Bureau (JIB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs"},{"SYMBOLID":"S*G*USAPMT*****","DESCRIPTION":"Public Affairs JIB Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Joint Information Bureau (JIB)"},{"SYMBOLID":"S*G*USAPMC*****","DESCRIPTION":"Public Affairs JIB Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.9.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.PUBAFF.JIB.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Public Affairs/Public Affairs Joint Information Bureau (JIB)"},{"SYMBOLID":"S*G*USAX--*****","DESCRIPTION":"Replacement Holding Unit (RHU)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAXT-*****","DESCRIPTION":"RHU Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Replacement Holding Unit (RHU)"},{"SYMBOLID":"S*G*USAXC-*****","DESCRIPTION":"RHU Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.RHU.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Replacement Holding Unit (RHU)"},{"SYMBOLID":"S*G*USAL--*****","DESCRIPTION":"Labor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USALT-*****","DESCRIPTION":"Labor Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Labor"},{"SYMBOLID":"S*G*USALC-*****","DESCRIPTION":"Labor Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.LBR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Labor"},{"SYMBOLID":"S*G*USAW--*****","DESCRIPTION":"Morale, Welfare, Recreation (MWR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAWT-*****","DESCRIPTION":"MWR Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Morale, Welfare, Recreation (MWR)"},{"SYMBOLID":"S*G*USAWC-*****","DESCRIPTION":"MWR Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.12.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.MWR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Morale, Welfare, Recreation (MWR)"},{"SYMBOLID":"S*G*USAQ--*****","DESCRIPTION":"Quartermaster (Supply)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)"},{"SYMBOLID":"S*G*USAQT-*****","DESCRIPTION":"Quartermaster (Supply) Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Quartermaster (Supply)"},{"SYMBOLID":"S*G*USAQC-*****","DESCRIPTION":"Quartermaster (Supply) Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.1.13.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.ADMIN.SUPPLY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Administrative (ADMIN)/Quartermaster (Supply)"},{"SYMBOLID":"S*G*USM---*****","DESCRIPTION":"Medical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USMT--*****","DESCRIPTION":"Medical Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMC--*****","DESCRIPTION":"Medical Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMM--*****","DESCRIPTION":"Medical Treatment Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMMT-*****","DESCRIPTION":"Medical Treatment Facility Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Treatment Facility"},{"SYMBOLID":"S*G*USMMC-*****","DESCRIPTION":"Medical Treatment Facility Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.MEDTF.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Treatment Facility"},{"SYMBOLID":"S*G*USMV--*****","DESCRIPTION":"Medical Veterinary","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMVT-*****","DESCRIPTION":"Medical Veterinary Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Veterinary"},{"SYMBOLID":"S*G*USMVC-*****","DESCRIPTION":"Medical Veterinary Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.VNY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Veterinary"},{"SYMBOLID":"S*G*USMD--*****","DESCRIPTION":"Medical Dental","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMDT-*****","DESCRIPTION":"Medical Dental Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Dental"},{"SYMBOLID":"S*G*USMDC-*****","DESCRIPTION":"Medical Dental Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.DEN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Dental"},{"SYMBOLID":"S*G*USMP--*****","DESCRIPTION":"Medical Psychological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical"},{"SYMBOLID":"S*G*USMPT-*****","DESCRIPTION":"Medical Psychological Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Psychological"},{"SYMBOLID":"S*G*USMPC-*****","DESCRIPTION":"Medical Psychological Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MED.PSY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Medical/Medical Psychological"},{"SYMBOLID":"S*G*USS---*****","DESCRIPTION":"Supply","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USST--*****","DESCRIPTION":"Supply Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSC--*****","DESCRIPTION":"Supply Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS1--*****","DESCRIPTION":"Supply Class I","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS1T-*****","DESCRIPTION":"Supply Class I Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class I"},{"SYMBOLID":"S*G*USS1C-*****","DESCRIPTION":"Supply Class I Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS1.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class I"},{"SYMBOLID":"S*G*USS2--*****","DESCRIPTION":"Supply Class II","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS2T-*****","DESCRIPTION":"Supply Class II Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class II"},{"SYMBOLID":"S*G*USS2C-*****","DESCRIPTION":"Supply Class II Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS2.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class II"},{"SYMBOLID":"S*G*USS3--*****","DESCRIPTION":"Supply Class III","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS3T-*****","DESCRIPTION":"Supply Class III Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3C-*****","DESCRIPTION":"Supply Class III Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3A-*****","DESCRIPTION":"Supply Class III Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III"},{"SYMBOLID":"S*G*USS3AT*****","DESCRIPTION":"Supply Class III Aviation Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III/Supply Class III Aviation"},{"SYMBOLID":"S*G*USS3AC*****","DESCRIPTION":"Supply Class III Aviation Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS3.AVN.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class III/Supply Class III Aviation"},{"SYMBOLID":"S*G*USS4--*****","DESCRIPTION":"Supply Class IV","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS4T-*****","DESCRIPTION":"Supply Class IV Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IV"},{"SYMBOLID":"S*G*USS4C-*****","DESCRIPTION":"Supply Class IV Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS4.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IV"},{"SYMBOLID":"S*G*USS5--*****","DESCRIPTION":"Supply Class V","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS5T-*****","DESCRIPTION":"Supply Class V Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class V"},{"SYMBOLID":"S*G*USS5C-*****","DESCRIPTION":"Supply Class V Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS5.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class V"},{"SYMBOLID":"S*G*USS6--*****","DESCRIPTION":"Supply Class VI","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS6T-*****","DESCRIPTION":"Supply Class VI Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VI"},{"SYMBOLID":"S*G*USS6C-*****","DESCRIPTION":"Supply Class VI Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS6.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VI"},{"SYMBOLID":"S*G*USS7--*****","DESCRIPTION":"Supply Class VII","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS7T-*****","DESCRIPTION":"Supply Class VII Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VII"},{"SYMBOLID":"S*G*USS7C-*****","DESCRIPTION":"Supply Class VII Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS7.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VII"},{"SYMBOLID":"S*G*USS8--*****","DESCRIPTION":"Supply Class VIII","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS8T-*****","DESCRIPTION":"Supply Class VIII Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VIII"},{"SYMBOLID":"S*G*USS8C-*****","DESCRIPTION":"Supply Class VIII Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS8.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class VIII"},{"SYMBOLID":"S*G*USS9--*****","DESCRIPTION":"Supply Class IX","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USS9T-*****","DESCRIPTION":"Supply Class IX Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IX"},{"SYMBOLID":"S*G*USS9C-*****","DESCRIPTION":"Supply Class IX Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS9.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class IX"},{"SYMBOLID":"S*G*USSX--*****","DESCRIPTION":"Supply Class X","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSXT-*****","DESCRIPTION":"Supply Class X Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class X"},{"SYMBOLID":"S*G*USSXC-*****","DESCRIPTION":"Supply Class X Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.12.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.CLS10.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Class X"},{"SYMBOLID":"S*G*USSL--*****","DESCRIPTION":"Supply Laundry/Bath","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSLT-*****","DESCRIPTION":"Supply Laundry/Bath Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Laundry and Bath"},{"SYMBOLID":"S*G*USSLC-*****","DESCRIPTION":"Supply Laundry/Bath Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.13.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.LDY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Laundry and Bath"},{"SYMBOLID":"S*G*USSW--*****","DESCRIPTION":"Supply Water","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply"},{"SYMBOLID":"S*G*USSWT-*****","DESCRIPTION":"Supply Water Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWC-*****","DESCRIPTION":"Supply Water Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWP-*****","DESCRIPTION":"Supply Water Purification","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water"},{"SYMBOLID":"S*G*USSWPT*****","DESCRIPTION":"Supply Water Purification Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water/Supply Water Purification"},{"SYMBOLID":"S*G*USSWPC*****","DESCRIPTION":"Supply Water Purification Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.3.14.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.SLP.H2O.PUR.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Supply/Supply Water/Supply Water Purification"},{"SYMBOLID":"S*G*UST---*****","DESCRIPTION":"Transportation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USTT--*****","DESCRIPTION":"Transportation Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTC--*****","DESCRIPTION":"Transportation Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTM--*****","DESCRIPTION":"Movement Control Center (MCC)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTMT-*****","DESCRIPTION":"MCC Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Movement Control Center (MCC)"},{"SYMBOLID":"S*G*USTMC-*****","DESCRIPTION":"MCC Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MCC.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Movement Control Center (MCC)"},{"SYMBOLID":"S*G*USTR--*****","DESCRIPTION":"Railhead","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTRT-*****","DESCRIPTION":"Railhead Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Railhead"},{"SYMBOLID":"S*G*USTRC-*****","DESCRIPTION":"Railhead Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.RHD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Railhead"},{"SYMBOLID":"S*G*USTS--*****","DESCRIPTION":"SPOD/SPOE","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTST-*****","DESCRIPTION":"SPOD/SPOE Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/SPOD and SPOE"},{"SYMBOLID":"S*G*USTSC-*****","DESCRIPTION":"SPOD/SPOE Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.SPOD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/SPOD and SPOE"},{"SYMBOLID":"S*G*USTA--*****","DESCRIPTION":"APOD/APOE","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTAT-*****","DESCRIPTION":"APOD/APOE Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/APOD and APOE"},{"SYMBOLID":"S*G*USTAC-*****","DESCRIPTION":"APOD/APOE Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.APOD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/APOD and APOE"},{"SYMBOLID":"S*G*USTI--*****","DESCRIPTION":"Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation"},{"SYMBOLID":"S*G*USTIT-*****","DESCRIPTION":"Missile Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Missile"},{"SYMBOLID":"S*G*USTIC-*****","DESCRIPTION":"Missile Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.4.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.TPT.MSL.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Transportation/Missile"},{"SYMBOLID":"S*G*USX---*****","DESCRIPTION":"Maintenance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support"},{"SYMBOLID":"S*G*USXT--*****","DESCRIPTION":"Maintenance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXC--*****","DESCRIPTION":"Maintenance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXH--*****","DESCRIPTION":"Maintenance Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXHT-*****","DESCRIPTION":"Maintenance Heavy Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Heavy"},{"SYMBOLID":"S*G*USXHC-*****","DESCRIPTION":"Maintenance Heavy Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.HVY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Heavy"},{"SYMBOLID":"S*G*USXR--*****","DESCRIPTION":"Maintenance Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXRT-*****","DESCRIPTION":"Maintenance Recovery Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Recovery"},{"SYMBOLID":"S*G*USXRC-*****","DESCRIPTION":"Maintenance Recovery Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.RCY.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Maintenance Recovery"},{"SYMBOLID":"S*G*USXO--*****","DESCRIPTION":"Ordnance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXOT-*****","DESCRIPTION":"Ordnance Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOC-*****","DESCRIPTION":"Ordnance Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOM-*****","DESCRIPTION":"Ordnance Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance"},{"SYMBOLID":"S*G*USXOMT*****","DESCRIPTION":"Ordnance Missile Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance/Ordnance Missile"},{"SYMBOLID":"S*G*USXOMC*****","DESCRIPTION":"Ordnance Missile Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.ORD.MSL.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Ordnance/Ordnance Missile"},{"SYMBOLID":"S*G*USXE--*****","DESCRIPTION":"Electro-Optical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance"},{"SYMBOLID":"S*G*USXET-*****","DESCRIPTION":"Electro-Optical Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP.THT","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Electro-Optical"},{"SYMBOLID":"S*G*USXEC-*****","DESCRIPTION":"Electro-Optical Corps","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.3.5.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.CSS.MAINT.EOP.CRP","PATH":"Warfighting Symbology/Ground Track/Unit/Combat Service Support/Maintenance/Electro-Optical"},{"SYMBOLID":"S*G*UH----*****","DESCRIPTION":"Special C2 Headquarters Component","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.UNT.C2HQ","PATH":"Warfighting Symbology/Ground Track/Unit"},{"SYMBOLID":"S*G*E-----*****","DESCRIPTION":"Ground Track Equipment","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*EW----*****","DESCRIPTION":"Weapon","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EWM---*****","DESCRIPTION":"Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWMA--*****","DESCRIPTION":"Air Defense (AD) Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMAS-*****","DESCRIPTION":"Short Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMASR*****","DESCRIPTION":"Short Range Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/ShortRange"},{"SYMBOLID":"S*G*EWMASE*****","DESCRIPTION":"Short Range Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.SHTR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/ShortRange"},{"SYMBOLID":"S*G*EWMAI-*****","DESCRIPTION":"Intermediate Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMAIR*****","DESCRIPTION":"Intermediate Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Intermediate Range"},{"SYMBOLID":"S*G*EWMAIE*****","DESCRIPTION":"Intermediate Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.INTMR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Intermediate Range"},{"SYMBOLID":"S*G*EWMAL-*****","DESCRIPTION":"Long Range AD Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMALR*****","DESCRIPTION":"Long Range Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Long Range"},{"SYMBOLID":"S*G*EWMALE*****","DESCRIPTION":"Long Range Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.LNGR.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Long Range"},{"SYMBOLID":"S*G*EWMAT-*****","DESCRIPTION":"AD Missile Launcher Theater","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher"},{"SYMBOLID":"S*G*EWMATR*****","DESCRIPTION":"Theater Transporter Launcher and Radar (TLAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT.TLAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Theater"},{"SYMBOLID":"S*G*EWMATE*****","DESCRIPTION":"Theater Transporter Erector Launcher and Radar (TELAR)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.ADFAD.THT.TELAR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Air Defense (AD) Missile Launcher/Theater"},{"SYMBOLID":"S*G*EWMS--*****","DESCRIPTION":"Surf-Surf (SS) Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMSS-*****","DESCRIPTION":"Short Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.SHTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMSI-*****","DESCRIPTION":"Intermediate Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.INTMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMSL-*****","DESCRIPTION":"Long Range SS Missile Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.SUF.LNGR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Surf-Surf (SS) Missile Launcher"},{"SYMBOLID":"S*G*EWMT--*****","DESCRIPTION":"Missile Launcher Antitank (AT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher"},{"SYMBOLID":"S*G*EWMTL-*****","DESCRIPTION":"Missile Launcher AT Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWMTM-*****","DESCRIPTION":"Missile Launcher AT Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWMTH-*****","DESCRIPTION":"Missile Launcher AT Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MSLL.AT.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Missile Launcher/Missile Launcher Antitank (AT)"},{"SYMBOLID":"S*G*EWS---*****","DESCRIPTION":"Weapon Single Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWSL--*****","DESCRIPTION":"Single Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWSM--*****","DESCRIPTION":"Single Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWSH--*****","DESCRIPTION":"Single Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.SRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Single Rocket Launcher"},{"SYMBOLID":"S*G*EWX---*****","DESCRIPTION":"Multiple Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWXL--*****","DESCRIPTION":"Multiple Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWXM--*****","DESCRIPTION":"Multiple Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWXH--*****","DESCRIPTION":"Multiple Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Multiple Rocket Launcher"},{"SYMBOLID":"S*G*EWT---*****","DESCRIPTION":"Anti-Tank Rocket Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWTL--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.1","ALPHAHIERARCHY":"211SYMBOL UNKNOWN FRIEND NEUTRAL HOSTILEWAR.GRDTRK.EQT.WPN.MRL.HVYWARFIGHTING SYMBOLSGROUND TRACKEQUIPMENTWEAPONMULTIPLE ROCKET LAUNCHERHEAVYHierarchy: 1.X.3.2.1.3.3Framed: FOSUGPEWXH--*****SFGPEWXH--*****SNGPEWXH--*****SHGPEWXH--*****SUGPEWXH--*****SFGPEWXH--*****SNGPEWXH--*****SHGPEWXH--*****WAR.GRDTRK.EQT.WPN.ATRLWARFIGHTING SYMBOLSGROUND TRACKEQUIPMENTWEAPONANTITANK ROCKET LAUNCHERHierarchy: 1.X.3.2.1.4Framed: FOSUGPEWT---*****SFGPEWT---*****SNGPEWT---*****SHGPEWT---*****SUGPEWT---*****SFGPEWT---*****SNGPEWT---*****SHGPEWT---*****WAR.GRDTRK.EQT.WPN.ATRL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWTM--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWTH--*****","DESCRIPTION":"Anti-Tank Rocket Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATRL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Rocket Launcher"},{"SYMBOLID":"S*G*EWR---*****","DESCRIPTION":"Rifle/Automatic Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Rifle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Cache","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.CACHE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Confiscated","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.CONF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Found","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.FND","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Market","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.MKT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRR--*****","DESCRIPTION":"Weapons Sale","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.RIF.SALE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon/Rifle"},{"SYMBOLID":"S*G*EWRL--*****","DESCRIPTION":"Light Machine Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.LMG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWRH--*****","DESCRIPTION":"Heavy Machine Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.RIFWPN.HMG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Rifle and Automatic Weapon"},{"SYMBOLID":"S*G*EWZ---*****","DESCRIPTION":"Grenade Launcher","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWZL--*****","DESCRIPTION":"Grenade Launcher Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWZM--*****","DESCRIPTION":"Grenade Launcher Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWZH--*****","DESCRIPTION":"Grenade Launcher Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.GREL.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Grenade Launcher"},{"SYMBOLID":"S*G*EWO---*****","DESCRIPTION":"Weapon Mortar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWOL--*****","DESCRIPTION":"Mortar Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWOM--*****","DESCRIPTION":"Mortar Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWOH--*****","DESCRIPTION":"Mortar Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.MORT.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Weapon Mortar"},{"SYMBOLID":"S*G*EWH---*****","DESCRIPTION":"Howitzer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWHL--*****","DESCRIPTION":"Howitzer Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHLS-*****","DESCRIPTION":"Howitzer Light Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.LIT.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Light"},{"SYMBOLID":"S*G*EWHM--*****","DESCRIPTION":"Howitzer Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHMS-*****","DESCRIPTION":"Howitzer Medium Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.MDM.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Medium"},{"SYMBOLID":"S*G*EWHH--*****","DESCRIPTION":"Howitzer Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer"},{"SYMBOLID":"S*G*EWHHS-*****","DESCRIPTION":"Howitzer Heavy Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.8.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.HOW.HVY.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Howitzer/Howitzer Heavy"},{"SYMBOLID":"S*G*EWG---*****","DESCRIPTION":"Anti-Tank Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWGL--*****","DESCRIPTION":"Anti-Tank Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGM--*****","DESCRIPTION":"Anti-Tank Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGH--*****","DESCRIPTION":"Anti-Tank Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWGR--*****","DESCRIPTION":"Anti-Tank Gun Recoilless","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.9.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ATG.RECL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Anti-Tank Gun"},{"SYMBOLID":"S*G*EWD---*****","DESCRIPTION":"Direct Fire Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWDL--*****","DESCRIPTION":"Direct Fire Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDLS-*****","DESCRIPTION":"Direct Fire Gun Light Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.LIT.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Light"},{"SYMBOLID":"S*G*EWDM--*****","DESCRIPTION":"Direct Fire Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDMS-*****","DESCRIPTION":"Direct Fire Gun Medium Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.MDM.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Medium"},{"SYMBOLID":"S*G*EWDH--*****","DESCRIPTION":"Direct Fire Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun"},{"SYMBOLID":"S*G*EWDHS-*****","DESCRIPTION":"Direct Fire Gun Heavy Self-Propelled","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.10.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.DFG.HVY.SPD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Direct Fire Gun/Direct Fire Gun Heavy"},{"SYMBOLID":"S*G*EWA---*****","DESCRIPTION":"Air Defense Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon"},{"SYMBOLID":"S*G*EWAL--*****","DESCRIPTION":"Air Defense Gun Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EWAM--*****","DESCRIPTION":"Air Defense Gun Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EWAH--*****","DESCRIPTION":"Air Defense Gun Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.1.11.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.WPN.ADFG.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Weapon/Air Defense Gun"},{"SYMBOLID":"S*G*EV----*****","DESCRIPTION":"Ground Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EVA---*****","DESCRIPTION":"Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVAT--*****","DESCRIPTION":"Tank","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVATL-*****","DESCRIPTION":"Tank Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATLR*****","DESCRIPTION":"Tank Light Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.LIT.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Light"},{"SYMBOLID":"S*G*EVATM-*****","DESCRIPTION":"Tank Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATMR*****","DESCRIPTION":"Tank Medium Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.MDM.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Medium"},{"SYMBOLID":"S*G*EVATH-*****","DESCRIPTION":"Tank Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank"},{"SYMBOLID":"S*G*EVATHR*****","DESCRIPTION":"Tank Heavy Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.TANK.HVY.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Tank/Tank Heavy"},{"SYMBOLID":"S*G*EVAA--*****","DESCRIPTION":"Armored Personnel Carrier","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMPC","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAAR-*****","DESCRIPTION":"Armored Personnel Carrier Recovery","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMPC.RCY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle/Armored Personnel Carrier"},{"SYMBOLID":"S*G*EVAI--*****","DESCRIPTION":"Armored Infantry","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.ARMINF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAC--*****","DESCRIPTION":"C2V/ACV","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.C2V","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAS--*****","DESCRIPTION":"Combat Service Support Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.CSSVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVAL--*****","DESCRIPTION":"Light Armored Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.1.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ARMD.LARMVH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Armored Vehicle"},{"SYMBOLID":"S*G*EVU---*****","DESCRIPTION":"Utility Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVUB--*****","DESCRIPTION":"Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.BUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUS--*****","DESCRIPTION":"Semi","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUSL-*****","DESCRIPTION":"Semi Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUSM-*****","DESCRIPTION":"Semi Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUSH-*****","DESCRIPTION":"Semi Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.SEMI.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Semi"},{"SYMBOLID":"S*G*EVUL--*****","DESCRIPTION":"Limited Cross-Country Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.LCCTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUX--*****","DESCRIPTION":"Cross-Country Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.CCTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUR--*****","DESCRIPTION":"Water Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.H2OCRT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUT--*****","DESCRIPTION":"Tow Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUTL-*****","DESCRIPTION":"Tow Truck Light","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK.LIT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Tow Truck"},{"SYMBOLID":"S*G*EVUTH-*****","DESCRIPTION":"Tow Truck Heavy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.TOWTRK.HVY","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Tow Truck"},{"SYMBOLID":"S*G*EVUA--*****","DESCRIPTION":"Ambulance","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.AMBLNC","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVUAA-*****","DESCRIPTION":"Ambulance Armored","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.2.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.UTYVEH.AMBLNC.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Utility Vehicle/Ambulance"},{"SYMBOLID":"S*G*EVE---*****","DESCRIPTION":"Engineer Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVEB--*****","DESCRIPTION":"Engineer Vehicle Bridge","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.BRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEE--*****","DESCRIPTION":"Earthmover","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.ERHMR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEC--*****","DESCRIPTION":"Construction Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.CSNVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEM--*****","DESCRIPTION":"Mine Laying Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEMV-*****","DESCRIPTION":"Armored Carrier with Volcano","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH.ARMCV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Laying Vehicle"},{"SYMBOLID":"S*G*EVEML-*****","DESCRIPTION":"Truck Mounted with Volcano","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MLVEH.TRKMV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Laying Vehicle"},{"SYMBOLID":"S*G*EVEA--*****","DESCRIPTION":"Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEAA-*****","DESCRIPTION":"Armored Mounted Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH.ARMVM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Clearing Vehicle"},{"SYMBOLID":"S*G*EVEAT-*****","DESCRIPTION":"Trailer Mounted Mine Clearing Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.MCVEH.TM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle/Mine Clearing Vehicle"},{"SYMBOLID":"S*G*EVED--*****","DESCRIPTION":"Dozer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.DZR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEDA-*****","DESCRIPTION":"Armored Dozer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.DZR.ARMD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVES--*****","DESCRIPTION":"Armored Assault","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.AST","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVER--*****","DESCRIPTION":"Armored Engineer Recon Vehicle (AERV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.ARMERV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEH--*****","DESCRIPTION":"Backhoe","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.BH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Engineer Vehicle"},{"SYMBOLID":"S*G*EVEF--*****","DESCRIPTION":"Ferry Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.ENGVEH.FRYTSP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVT---*****","DESCRIPTION":"Train Locomotive","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.TRNLCO","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVC---*****","DESCRIPTION":"Civilian Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVCA--*****","DESCRIPTION":"Civilian Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCAL-*****","DESCRIPTION":"Civilian Compact Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.CPCT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCAM-*****","DESCRIPTION":"Civilian Midsize Automobile","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.MDSZ","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCAH-*****","DESCRIPTION":"Civilian Automobile Sedan","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.AUT.SDN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Automobile"},{"SYMBOLID":"S*G*EVCO--*****","DESCRIPTION":"Civilian Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCOL-*****","DESCRIPTION":"Civilian Pickup Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.PU","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCOM-*****","DESCRIPTION":"Civilian Small Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCOH-*****","DESCRIPTION":"Civilian Large Open-Bed Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.OBTRK.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Open-Bed Truck"},{"SYMBOLID":"S*G*EVCM--*****","DESCRIPTION":"Civilian Multi-Passenger Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCML-*****","DESCRIPTION":"Civilian Multi-Passenger Van","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.VAN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCMM-*****","DESCRIPTION":"Civilian Small Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.SBUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCMH-*****","DESCRIPTION":"Civilian Large Bus","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.MPV.LBUS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Multi-Passenger Vehicle"},{"SYMBOLID":"S*G*EVCU--*****","DESCRIPTION":"Civilian Utility Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCUL-*****","DESCRIPTION":"Civilian Sport Utility Vehicle (SUV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.SUV","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCUM-*****","DESCRIPTION":"Civilian Utility Small Box Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.SBOX","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCUH-*****","DESCRIPTION":"Civilian Utility Large Box Truck","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.UTYVEH.LBOX","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Utility Vehicle"},{"SYMBOLID":"S*G*EVCJ--*****","DESCRIPTION":"Civilian Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCJL-*****","DESCRIPTION":"Civilian Small/Light Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCJM-*****","DESCRIPTION":"Civilian Medium Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCJH-*****","DESCRIPTION":"Civilian Large/Heavy Jeep Type Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.JP.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Jeep Type Vehicle"},{"SYMBOLID":"S*G*EVCT--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCTL-*****","DESCRIPTION":"Civilian Small/Light Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCTM-*****","DESCRIPTION":"Civilian Medium Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCTH-*****","DESCRIPTION":"Civilian Large/Heavy Box Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRL.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Box Trailer"},{"SYMBOLID":"S*G*EVCF--*****","DESCRIPTION":"Civilian Tractor Trailer Truck With Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle"},{"SYMBOLID":"S*G*EVCFL-*****","DESCRIPTION":"Civilian Small/Light Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.SMAL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVCFM-*****","DESCRIPTION":"Civilian Medium Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.MDM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVCFH-*****","DESCRIPTION":"Civilian Large/Heavy Flatbed Trailer","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.5.7.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.CVLVEH.TRTRLF.LRG","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Civilian Vehicle/Civilian Tractor Trailer Truck With Flatbed Trailer"},{"SYMBOLID":"S*G*EVS---*****","DESCRIPTION":"Missile Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*EVST--*****","DESCRIPTION":"Transloader","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.TLDR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSR--*****","DESCRIPTION":"Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.TPTR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSC--*****","DESCRIPTION":"Crane/Loading Device","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.CRN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSP--*****","DESCRIPTION":"Propellant Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.PLNT","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVSW--*****","DESCRIPTION":"Warhead Transporter","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.6.5","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.MSLSPT.WH","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle/Missile Support"},{"SYMBOLID":"S*G*EVM---*****","DESCRIPTION":"Pack Animal(s)","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.2.7","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.GRDVEH.PKAN","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Ground Vehicle"},{"SYMBOLID":"S*G*ES----*****","DESCRIPTION":"Equipment Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*ESR---*****","DESCRIPTION":"Sensor Radar","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS.RAD","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Sensor"},{"SYMBOLID":"S*G*ESE---*****","DESCRIPTION":"Emplaced Sensor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SNS.EMP","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Sensor"},{"SYMBOLID":"S*G*EX----*****","DESCRIPTION":"Special","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.2.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment"},{"SYMBOLID":"S*G*EXL---*****","DESCRIPTION":"Laser","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LSR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXN---*****","DESCRIPTION":"NBC Equipment","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.NBCEQ","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXF---*****","DESCRIPTION":"Flame Thrower","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.FLMTHR","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXM---*****","DESCRIPTION":"Land Mines","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXMC--*****","DESCRIPTION":"Claymore","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE.CLM","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Land Mines"},{"SYMBOLID":"S*G*EXML--*****","DESCRIPTION":"Less Than Lethal","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.EQT.SPL.LNDMNE.LTL","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Land Mines"},{"SYMBOLID":"S*G*EXI---*****","DESCRIPTION":"IED","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.5","ALPHAHIERARCHY":"WAR.GRNTRK.EQT.SPL.IED","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special"},{"SYMBOLID":"S*G*EXI---MO***","DESCRIPTION":"VBIED","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.2.4.5.1","ALPHAHIERARCHY":"WAR.GRNTRK.EQT.SPL.IED.VBIED","PATH":"Warfighting Symbology/Ground Track/Ground Track Equipment/Special/Improvised Explosive Device (IED)"},{"SYMBOLID":"S*G*I-----H****","DESCRIPTION":"Installation","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS","PATH":"Warfighting Symbology/Ground Track"},{"SYMBOLID":"S*G*IR----H****","DESCRIPTION":"Raw Material Production/Storage","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IRM---H****","DESCRIPTION":"Raw Material Production/Storage Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.MNE","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRP---H****","DESCRIPTION":"Petroleum/Gas/Oil","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.PGO","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRN---H****","DESCRIPTION":"NBC","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage"},{"SYMBOLID":"S*G*IRNB--H****","DESCRIPTION":"Production/Storage NBC Biological","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.BIO","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IRNC--H****","DESCRIPTION":"Production/Storage NBC Chemical","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.CML","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IRNN--H****","DESCRIPTION":"Production/Storage NBC Nuclear","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.1.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.RMP.CBRN.NUC","PATH":"Warfighting Symbology/Ground Track/Installation/Raw Material Production and Storage/NBC"},{"SYMBOLID":"S*G*IP----H****","DESCRIPTION":"Processing Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.PF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IPD---H****","DESCRIPTION":"Processing Facility Decontamination","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.PF.DECON","PATH":"Warfighting Symbology/Ground Track/Installation/Processing Facility"},{"SYMBOLID":"S*G*IE----H****","DESCRIPTION":"Equipment Manufacture","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.EQTMNF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IU----H****","DESCRIPTION":"Service, Reasearch, Utility Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IUR---H****","DESCRIPTION":"Technological Research Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.TRF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUT---H****","DESCRIPTION":"Telecommunications Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.TCF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUE---H****","DESCRIPTION":"Electric Power Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IUEN--H****","DESCRIPTION":"Nuclear Plant","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.NPT","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUED--H****","DESCRIPTION":"Dam","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.DAM","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUEF--H****","DESCRIPTION":"Fossil Fuel","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.3.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.EPF.FOSF","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility/Electric Power Facility"},{"SYMBOLID":"S*G*IUP---H****","DESCRIPTION":"Public Water Services","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.4.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.SRUF.PWS","PATH":"Warfighting Symbology/Ground Track/Installation/Service, Reasearch, Utility Facility"},{"SYMBOLID":"S*G*IM----H****","DESCRIPTION":"Military Materiel Facility","DRAWCATEGORY":"0","HIERARCHY":"1.X.3.3.5","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IMF---H****","DESCRIPTION":"Nuclear Energy","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMFA--H****","DESCRIPTION":"Atomic Energy Reactor","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.ATMER","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMFP--H****","DESCRIPTION":"Nuclear Material Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMFPW-H****","DESCRIPTION":"Weapons Grade","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.2.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMP.WPNGR","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy/Nuclear Material Production"},{"SYMBOLID":"S*G*IMFS--H****","DESCRIPTION":"Nuclear Material Storage","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.1.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.NENY.NMS","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Nuclear Energy"},{"SYMBOLID":"S*G*IMA---H****","DESCRIPTION":"Aircraft Production & Assembly","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.APA","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IME---H****","DESCRIPTION":"Ammunition And Explosives Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.3","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.AMEP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMG---H****","DESCRIPTION":"Armament Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.4","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.AMTP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMV---H****","DESCRIPTION":"Military Vehicle Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.5","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.MILVP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMN---H****","DESCRIPTION":"Engineering Equipment Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.6","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.ENGEP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMNB--H****","DESCRIPTION":"Engineering Equipment Production Bridge","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.6.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.ENGEP.BRG","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility/Engineering Equipment Production"},{"SYMBOLID":"S*G*IMC---H****","DESCRIPTION":"Chemical & Biological Warfare Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.7","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.CBWP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMS---H****","DESCRIPTION":"Ship Construction","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.8","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.SHPCSN","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IMM---H****","DESCRIPTION":"Missile & Space System Production","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.5.9","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MMF.MSSP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Materiel Facility"},{"SYMBOLID":"S*G*IG----H****","DESCRIPTION":"Government Leadership","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.6","ALPHAHIERARCHY":"WAR.GRDTRK.INS.GOVLDR","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IB----H****","DESCRIPTION":"Military Base/Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IBA---H****","DESCRIPTION":"Airport/Airbase","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF.AB","PATH":"Warfighting Symbology/Ground Track/Installation/Military Base and Facility"},{"SYMBOLID":"S*G*IBN---H****","DESCRIPTION":"Seaport/Naval Base","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.7.2","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MILBF.SP","PATH":"Warfighting Symbology/Ground Track/Installation/Military Base and Facility"},{"SYMBOLID":"S*G*IT----H****","DESCRIPTION":"Transport Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.8","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TSPF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IX----H****","DESCRIPTION":"Medical Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.9","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MEDF","PATH":"Warfighting Symbology/Ground Track/Installation"},{"SYMBOLID":"S*G*IXH---H****","DESCRIPTION":"Hospital","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.9.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.MEDF.HSP","PATH":"Warfighting Symbology/Ground Track/Installation/Medical Facility"},{"SYMBOLID":"S*G*IC----H****","DESCRIPTION":"Tented Camp","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TNTCMP","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION"},{"SYMBOLID":"S*G*ICD---H****","DESCRIPTION":"Tented Camp, Displaced Persons/Refugees","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10.1","ALPHAHIERARCHY":"WAR.GRDTRK.INS.TNTCMP.DPRE","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION/Tented Camp"},{"SYMBOLID":"S*G*ICT---H****","DESCRIPTION":"Tented Training Camp","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.10.2","ALPHAHIERARCHY":"WAR.GRDTRK.INK.INS.TNTCMP.TNG","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION/TENTED CAMP"},{"SYMBOLID":"S*G*IW----H****","DESCRIPTION":"Warehouse/Storage Facility","DRAWCATEGORY":"8","HIERARCHY":"1.X.3.3.11","ALPHAHIERARCHY":"WAR.GRDTRK.INS.WAREHS","PATH":"WARFIGHTING SYMBOLS/GROUND TRACK/INSTALLATION"},{"SYMBOLID":"S*S*------*****","DESCRIPTION":"Sea Surface Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.4","ALPHAHIERARCHY":"WAR.SSUF","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*S*C-----*****","DESCRIPTION":"Sea Surface Track Combatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*CL----*****","DESCRIPTION":"Line","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CLCV--*****","DESCRIPTION":"Carrier","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.CRR","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLBB--*****","DESCRIPTION":"Battleship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.BBS","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLCC--*****","DESCRIPTION":"Cruiser","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.CRU","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLDD--*****","DESCRIPTION":"Destroyer","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.DD","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLFF--*****","DESCRIPTION":"Frigate/Corvette","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.5","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.FFR","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLLL--*****","DESCRIPTION":"Littoral Combatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line"},{"SYMBOLID":"S*S*CLLLAS*****","DESCRIPTION":"Antisubmarine Warfare Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CLLLMI*****","DESCRIPTION":"Mine Warfare Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.MNEW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CLLLSU*****","DESCRIPTION":"Surface Warfare (SUW) Mission Package","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.1.6.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.LNE.LL.SUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Line/Littoral Combatant"},{"SYMBOLID":"S*S*CA----*****","DESCRIPTION":"Amphibious Warfare Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CALA--*****","DESCRIPTION":"Assault Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.ASTVES","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CALS--*****","DESCRIPTION":"Landing Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CALSM-*****","DESCRIPTION":"Landing Ship Medium","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP.MDM","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship/Landing Ship"},{"SYMBOLID":"S*S*CALST-*****","DESCRIPTION":"Landing Ship Tank","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDSHP.TANK","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship/Landing Ship"},{"SYMBOLID":"S*S*CALC--*****","DESCRIPTION":"Landing Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.2.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.AMPWS.LNDCRT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Amphibious Warfare Ship"},{"SYMBOLID":"S*S*CM----*****","DESCRIPTION":"Mine Warfare Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CMML--*****","DESCRIPTION":"Minelayer","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNELYR","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMS--*****","DESCRIPTION":"Minesweeper","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNESWE","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMH--*****","DESCRIPTION":"Minehunter","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MNEHNT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CMMA--*****","DESCRIPTION":"MCM Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.3.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.MNEWV.MCMSUP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Mine Warfare Vessel"},{"SYMBOLID":"S*S*CP----*****","DESCRIPTION":"Sea Surface Combatant Patrol","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CPSB--*****","DESCRIPTION":"Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Sea Surface Combatant Patrol"},{"SYMBOLID":"S*S*CPSU--*****","DESCRIPTION":"Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Sea Surface Combatant Patrol"},{"SYMBOLID":"S*S*CPSUM-*****","DESCRIPTION":"Anti-Ship Missile","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.ASMSL","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CPSUT-*****","DESCRIPTION":"Torpedo(Antisurface Warfare)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.TPD","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CPSUG-*****","DESCRIPTION":"Antisurface Warfare Gun","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.4.2.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.PAT.ASUW.GUN","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Patrol/Antisurface Warfare"},{"SYMBOLID":"S*S*CH----*****","DESCRIPTION":"Combatant Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.5","ALPHAHIERARCHY":"WAR.SSUF.CBTT.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*S-----*****","DESCRIPTION":"Sea Surface Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*SP----*****","DESCRIPTION":"Picket","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN.PKT","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Station"},{"SYMBOLID":"S*S*SA----*****","DESCRIPTION":"ASW Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.6.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.STN.ASWSHP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Station"},{"SYMBOLID":"S*S*G-----*****","DESCRIPTION":"Navy Group","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*GT----*****","DESCRIPTION":"Navy Task Force","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTF","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GG----*****","DESCRIPTION":"Navy Task Group","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTG","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GU----*****","DESCRIPTION":"Navy Task Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.NAVTU","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*GC----*****","DESCRIPTION":"Convoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.7.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.NAVGRP.CNY","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Navy Group"},{"SYMBOLID":"S*S*CD----*****","DESCRIPTION":"Surface Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.8","ALPHAHIERARCHY":"WAR.SSUF.CBTT.SUFDCY","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant"},{"SYMBOLID":"S*S*CU----*****","DESCRIPTION":"Unmanned Surface Vehicle (USV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/"},{"SYMBOLID":"S*S*CUM---*****","DESCRIPTION":"USV Mine Countermeasures","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.1","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.MNECM","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUS---*****","DESCRIPTION":"USV Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.2","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.ASBW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUN---*****","DESCRIPTION":"USV Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.3","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.ASUW","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*CUR---*****","DESCRIPTION":"USV Remote Multimission Vehicle","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.1.9.4","ALPHAHIERARCHY":"WAR.SSUF.CBTT.USV.RMV","PATH":"Warfighting Symbology/Sea Surface Track/Sea Surface Track Combatant/Unmanned Surface Vehicle (USV)"},{"SYMBOLID":"S*S*N-----*****","DESCRIPTION":"Noncombatant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2","ALPHAHIERARCHY":"WAR.SSUF.NCBTT","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*NR----*****","DESCRIPTION":"Underway Replenishment","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.1","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.UWRPM","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NF----*****","DESCRIPTION":"Fleet Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.2","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.FLTSUP","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NI----*****","DESCRIPTION":"Intelligence","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.3","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.INT","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NS----*****","DESCRIPTION":"Service & Support Harbor","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.4","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.SSH","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NM----*****","DESCRIPTION":"Hospital Ship","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.5","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.HSPSHP","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NH----*****","DESCRIPTION":"Noncombatant Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.6","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NN----*****","DESCRIPTION":"Noncombatant Station","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.7","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.STN","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant"},{"SYMBOLID":"S*S*NNR---*****","DESCRIPTION":"Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.2.7.1","ALPHAHIERARCHY":"WAR.SSUF.NCBTT.STN.RSC","PATH":"Warfighting Symbology/Sea Surface Track/Noncombatant/Station"},{"SYMBOLID":"S*S*X-----*****","DESCRIPTION":"Non-Military","DRAWCATEGORY":"0","HIERARCHY":"1.X.4.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*S*XM----*****","DESCRIPTION":"Merchant","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XMC---*****","DESCRIPTION":"Subsurface Non-military Cargo","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.CGO","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMR---*****","DESCRIPTION":"Roll On/Roll Off","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.RORO","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMO---*****","DESCRIPTION":"Oiler/Tanker","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.OLR","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMTU--*****","DESCRIPTION":"Tug","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.4","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.TUG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMF---*****","DESCRIPTION":"Ferry","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.5","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.FRY","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMP---*****","DESCRIPTION":"Passenger","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.6","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.PSG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMH---*****","DESCRIPTION":"Hazardous Materials (HAZMAT)","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.7","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.HAZMAT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XMTO--*****","DESCRIPTION":"Towing Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.1.8","ALPHAHIERARCHY":"WAR.SSUF.NMIL.MCT.TOWVES","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Merchant"},{"SYMBOLID":"S*S*XF----*****","DESCRIPTION":"Fishing","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XFDF--*****","DESCRIPTION":"Drifter","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.1","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.DRFT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XFDR--*****","DESCRIPTION":"Dredge","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.2","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.DRG","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XFTR--*****","DESCRIPTION":"Trawler","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.2.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.FSG.TRW","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military/Fishing"},{"SYMBOLID":"S*S*XR----*****","DESCRIPTION":"Leisure Craft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.3","ALPHAHIERARCHY":"WAR.SSUF.NMIL.LESCRT","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XL----*****","DESCRIPTION":"Law Enforcement Vessel","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.4","ALPHAHIERARCHY":"WAR.SSUF.NMIL.LAWENV","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*XH----*****","DESCRIPTION":"Non-military Hovercraft","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.3.5","ALPHAHIERARCHY":"WAR.SSUF.NMIL.HOV","PATH":"Warfighting Symbology/Sea Surface Track/Non-Military"},{"SYMBOLID":"S*S*O-----*****","DESCRIPTION":"Own Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.4.4","ALPHAHIERARCHY":"WAR.SSUF.OWN","PATH":"Warfighting Symbology/Sea Surface Track"},{"SYMBOLID":"S*U*------*****","DESCRIPTION":"Subsurface Track","DRAWCATEGORY":"8","HIERARCHY":"1.X.5","ALPHAHIERARCHY":"WAR.SBSUF","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*U*S-----*****","DESCRIPTION":"Submarine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*SN----*****","DESCRIPTION":"Nuclear Propulsion","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SNF---*****","DESCRIPTION":"Submarine Nuclear Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNA---*****","DESCRIPTION":"Submarine Nuclear Attack (SSN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.ATK","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNM---*****","DESCRIPTION":"Submarine Nuclear Missile Type Unknown","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.MSL","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNG---*****","DESCRIPTION":"Submarine Nuclear Guided Missile (SSGN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.4","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.GDD","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SNB---*****","DESCRIPTION":"Ballistic Missile Submarine (SSB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.1.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NPRN.BLST","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Nuclear Propulsion"},{"SYMBOLID":"S*U*SC----*****","DESCRIPTION":"Conventional Propulsion","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SCF---*****","DESCRIPTION":"Conventional Propulsion Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCA---*****","DESCRIPTION":"Attack Submarine (SS)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.ATK","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCM---*****","DESCRIPTION":"Conventional Propulsion Missile Submarine (TYPE UNKNOWN)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.MSL","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCG---*****","DESCRIPTION":"Guided Missile Submarine (SSG)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.4","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.GDD","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SCB---*****","DESCRIPTION":"Conventional Propulsion Ballistic Missile (SSB)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.2.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CNVPRN.BLST","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Conventional Propulsion"},{"SYMBOLID":"S*U*SO----*****","DESCRIPTION":"Other Submersible","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.OTH","PATH":"Warfighting Symbology/Subsurface Track/Submarine"},{"SYMBOLID":"S*U*SOF---*****","DESCRIPTION":"Other Submersible Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.0","ALPHAHIERARCHY":"WAR.SBSUF.SUB.OTH.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible"},{"SYMBOLID":"S*U*SU----*****","DESCRIPTION":"Unmanned Underwater Vehicle (UUV)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible"},{"SYMBOLID":"S*U*SUM---*****","DESCRIPTION":"UUV Mine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.1","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.MNEW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SUS---*****","DESCRIPTION":"UUV Antisubmarine Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.2","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.ASBW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SUN---*****","DESCRIPTION":"UUV Antisurface Warfare","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.3.1.3","ALPHAHIERARCHY":"WAR.SBSUF.SUB.UUV.ASUW","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Other Submersible/Unmanned Underwater Vehicle (UUV)"},{"SYMBOLID":"S*U*SF----*****","DESCRIPTION":"Submarine Surfaced","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.5","ALPHAHIERARCHY":"WAR.SBSUF.SUB.SURF","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*SB----*****","DESCRIPTION":"Submarine Bottomed","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.6","ALPHAHIERARCHY":"WAR.SBSUF.SUB.BOTTMD","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*SR----*****","DESCRIPTION":"Submarine Certsub","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.7","ALPHAHIERARCHY":"WAR.SBSUF.SUB.CRT","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*SX----*****","DESCRIPTION":"Non Submarine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.8","ALPHAHIERARCHY":"WAR.SBSUF.SUB.NONSUB","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*S1----*****","DESCRIPTION":"Possub-1","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.9","ALPHAHIERARCHY":"WAR.SBSUF.SUB.POSS1","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*S2----*****","DESCRIPTION":"Possub-2","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.10","ALPHAHIERARCHY":"WAR.SBSUF.SUB.POSS2","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*S3----*****","DESCRIPTION":"Possub-3","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.11","ALPHAHIERARCHY":"WAR.SBSUF.SUB.POSS3","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*S4----*****","DESCRIPTION":"Possub-4","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.12","ALPHAHIERARCHY":"WAR.SBSUF.SUB.POSS4","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*SL----*****","DESCRIPTION":"ProbSub","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.13","ALPHAHIERARCHY":"WAR.SBSUF.SUB.PRBSUB","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*SK----*****","DESCRIPTION":"Snorkeling","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.1.14","ALPHAHIERARCHY":"WAR.SBSUF.SUB.SNORKL","PATH":"Warfighting Symbology/Subsurface Track/Submarine/Station"},{"SYMBOLID":"S*U*W-----*****","DESCRIPTION":"Underwater Weapon","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*WT----*****","DESCRIPTION":"Torpedo","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.TPD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon"},{"SYMBOLID":"S*U*WM----*****","DESCRIPTION":"Sea Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon"},{"SYMBOLID":"S*U*WMD---*****","DESCRIPTION":"Sea Mine Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMG---*****","DESCRIPTION":"Sea Mine (Ground)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMGD--*****","DESCRIPTION":"Sea Mine (Ground) Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMGX--*****","DESCRIPTION":"Ground (Bottom) Excercise Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.EXER","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMGE--*****","DESCRIPTION":"Ground (Bottom) MILEC","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.MILEC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMGC--*****","DESCRIPTION":"Ground (Bottom) MILCO","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.4","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.MILCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMGR--*****","DESCRIPTION":"Ground (Bottom) Negative Reacquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.5","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.NGREAC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMGO--*****","DESCRIPTION":"Ground (Bottom) Non-Mine Mike-Like Contact","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.2.6","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMG.NMMLCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Ground)"},{"SYMBOLID":"S*U*WMM---*****","DESCRIPTION":"Sea Mine (Moored)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMMD--*****","DESCRIPTION":"Sea Mine (Moored) Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMMX--*****","DESCRIPTION":"Moored Exercise Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.EXER","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMME--*****","DESCRIPTION":"Moored MILEC","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.MILEC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMMC--*****","DESCRIPTION":"Moored MILCO","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.4","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.MILCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMMR--*****","DESCRIPTION":"Moored Negative Reacquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.5","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.NGREAC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMMO--*****","DESCRIPTION":"Moored Non-Mine Mine-Like Object","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.3.6","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMM.NMMLCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Moored)"},{"SYMBOLID":"S*U*WMF---*****","DESCRIPTION":"Sea Mine (Floating)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMFD--*****","DESCRIPTION":"Sea Mine (Floating) Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.DLT","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMFX--*****","DESCRIPTION":"Floating Exercise Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.EXER","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMFE--*****","DESCRIPTION":"Floating MILEC","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.MILEC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMFC--*****","DESCRIPTION":"Floating MILCO","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.4","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.MILCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMFR--*****","DESCRIPTION":"Floating Negative Reacquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.5","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.NGREAC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMFO--*****","DESCRIPTION":"Floating Non-Mine Mine-Like Contact","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.4.6","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMF.NMMLCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (Floating)"},{"SYMBOLID":"S*U*WMO---*****","DESCRIPTION":"Sea Mine (Other Position)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.5","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMOP","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMOD--*****","DESCRIPTION":"Sea Mine (Other Position) Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.5.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.SMOP.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Sea Mine (In Other Position)"},{"SYMBOLID":"S*U*WMX---*****","DESCRIPTION":"General Exercise Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.6","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.EXER","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WME---*****","DESCRIPTION":"General MILEC","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.7","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.MILEC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMA---*****","DESCRIPTION":"General Mine Anchor","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.8","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.ANCHOR","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMC---*****","DESCRIPTION":"General MILCO","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.9","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.MILCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMR---*****","DESCRIPTION":"General Negative Reacquisition","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.10","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.NGREAC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMB---*****","DESCRIPTION":"General Obstructor","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.11","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.OBSTRC","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMBD--*****","DESCRIPTION":"General Obstructor Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.11.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.OBSTRC.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/General Obstructor"},{"SYMBOLID":"S*U*WMN---*****","DESCRIPTION":"General Non-Mine Mine-Like Object","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.12","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.NMMLCO","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMS---*****","DESCRIPTION":"Rising Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.13","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.RISING","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine"},{"SYMBOLID":"S*U*WMSX--*****","DESCRIPTION":"Rising Exercise Mine","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.13.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.RISING.EXER","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Rising Mine"},{"SYMBOLID":"S*U*WMSD--*****","DESCRIPTION":"Rising Mine Neutralized","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.2.2.13.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2WPN.SMNE.RISING.NTRLZD","PATH":"Warfighting Symbology/Subsurface Track/Underwater Weapon/Sea Mine/Rising Mine"},{"SYMBOLID":"S*U*WD----*****","DESCRIPTION":"Underwater Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*WDM---*****","DESCRIPTION":"Sea Mine Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY.SMDCY","PATH":"Warfighting Symbology/Subsurface Track/Underwater Decoy"},{"SYMBOLID":"S*U*WDMG--*****","DESCRIPTION":"Ground (Bottom) Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3.1.1","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY.SMDCY.GRND","PATH":"Warfighting Symbology/Subsurface Track/Underwater Decoy/Sea Mine Decoy"},{"SYMBOLID":"S*U*WDMM--*****","DESCRIPTION":"Moored Decoy","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.3.1.2","ALPHAHIERARCHY":"WAR.SBSUF.UH2DCY.SMDCY.MOORED","PATH":"Warfighting Symbology/Subsurface Track/Underwater Decoy/Sea Mine Decoy"},{"SYMBOLID":"S*U*N-----*****","DESCRIPTION":"Non-Submarine","DRAWCATEGORY":"0","HIERARCHY":"1.X.5.4","ALPHAHIERARCHY":"WAR.SBSUF.NSUB","PATH":"Warfighting Symbology/Subsurface Track"},{"SYMBOLID":"S*U*ND----*****","DESCRIPTION":"Diver","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.4.1","ALPHAHIERARCHY":"WAR.SBSUF.NSUB.DVR","PATH":"Warfighting Symbology/Subsurface Track/Non-Submarine"},{"SYMBOLID":"S*U*E-----*****","DESCRIPTION":"Environmental Report Location","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.5","ALPHAHIERARCHY":"WAR.SBSUF.ERL","PATH":"WARFIGHTING SYMBOLS/SUBSURFACE TRACK"},{"SYMBOLID":"S*U*V-----*****","DESCRIPTION":"Dive Report Location","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.6","ALPHAHIERARCHY":"WAR.SBSUF.DRL","PATH":"WARFIGHTING SYMBOLS/SUBSURFACE TRACK"},{"SYMBOLID":"S*U*X-----*****","DESCRIPTION":"Unexploded Ordnance Area (Subsurface)","DRAWCATEGORY":"8","HIERARCHY":"1.X.5.7","ALPHAHIERARCHY":"WAR.SBSUF.UXO","PATH":"WARFIGHTING SYMBOLS/SUBSURFACE TRACK"},{"SYMBOLID":"S*F*------*****","DESCRIPTION":"Special Operations Forces (SOF) Unit","DRAWCATEGORY":"8","HIERARCHY":"1.X.6","ALPHAHIERARCHY":"WAR.SOFUNT","PATH":"Warfighting Symbology"},{"SYMBOLID":"S*F*A-----*****","DESCRIPTION":"SOF Unit Aviation","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*AF----*****","DESCRIPTION":"SOF Unit Fixed Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AFA---*****","DESCRIPTION":"SOF Unit Fixed Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.ATK","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFK---*****","DESCRIPTION":"SOF Unit Refuel","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.RFE","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFU---*****","DESCRIPTION":"SOF Unit Fixed Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing"},{"SYMBOLID":"S*F*AFUL--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.LIT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AFUM--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.MDM","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AFUH--*****","DESCRIPTION":"SOF Unit Fixed Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.1.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.FIXD.UTY.HVY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Fixed Wing/SOF Unit Fixed Wing Utility"},{"SYMBOLID":"S*F*AV----*****","DESCRIPTION":"SOF Unit V/STOL","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.VSTOL","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AH----*****","DESCRIPTION":"SOF Unit Rotary Wing","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation"},{"SYMBOLID":"S*F*AHH---*****","DESCRIPTION":"SOF Unit Rotary Wing Combat Search & Rescue","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.CSAR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHA---*****","DESCRIPTION":"SOF Unit Rotary Wing Attack","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.ATK","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHU---*****","DESCRIPTION":"SOF Unit Rotary Wing Utility","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing"},{"SYMBOLID":"S*F*AHUL--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Light)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.LIT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*AHUM--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Medium)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.MDM","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*AHUH--*****","DESCRIPTION":"SOF Unit Rotary Wing Utility (Heavy)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.1.3.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.AVN.ROT.UTY.HVY","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Aviation/SOF Unit Rotary Wing/SOF Unit Rotary Wing Utility"},{"SYMBOLID":"S*F*N-----*****","DESCRIPTION":"SOF Unit SOF Unit Naval","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2","ALPHAHIERARCHY":"WAR.SOFUNT.NAV","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*NS----*****","DESCRIPTION":"SOF Unit Seal","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.1","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SEAL","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NU----*****","DESCRIPTION":"SOF Unit Underwater Demolition Team","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.2","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.UH2DML","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NB----*****","DESCRIPTION":"SOF Unit Special Boat","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.3","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SBT","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*NN----*****","DESCRIPTION":"SOF Unit Special SSNR","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.2.4","ALPHAHIERARCHY":"WAR.SOFUNT.NAV.SSSNR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit SOF Unit Naval"},{"SYMBOLID":"S*F*G-----*****","DESCRIPTION":"SOF Unit Ground","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3","ALPHAHIERARCHY":"WAR.SOFUNT.GRD","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*F*GS----*****","DESCRIPTION":"SOF Unit Special Forces","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.SOF","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GR----*****","DESCRIPTION":"SOF Unit Ranger","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.2","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.RGR","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GP----*****","DESCRIPTION":"SOF Unit Psychological Operations (PSYOP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.3","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.PSYOP","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*GPA---*****","DESCRIPTION":"SOF Unit Fixed Wing Aviation (PSYOP)","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.3.1","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.PSYOP.FIXAVN","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground/SOF Unit Psychological Operations (PSYOP)"},{"SYMBOLID":"S*F*GC----*****","DESCRIPTION":"SOF Unit Civil Affairs","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.3.4","ALPHAHIERARCHY":"WAR.SOFUNT.GRD.CVLAFF","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit/SOF Unit Ground"},{"SYMBOLID":"S*F*B-----*****","DESCRIPTION":"SOF Unit Support","DRAWCATEGORY":"8","HIERARCHY":"1.X.6.4","ALPHAHIERARCHY":"WAR.SOFUNT.SUP","PATH":"Warfighting Symbology/Special Operations Forces (SOF) Unit"},{"SYMBOLID":"S*Z*------*****","DESCRIPTION":"Unknown Battle Dimension","DRAWCATEGORY":"8","HIERARCHY":"1.X.7","ALPHAHIERARCHY":"UNK","PATH":"Warfighting Symbology"},{"SYMBOLID":"I*-*--------***","DESCRIPTION":"Signals Intelligence","DRAWCATEGORY":"0","HIERARCHY":"4.X","ALPHAHIERARCHY":"SIGINT"},{"SYMBOLID":"I*P*--------***","DESCRIPTION":"Space Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.1","ALPHAHIERARCHY":"SIGINT.SPC","PATH":"Signals Intelligence"},{"SYMBOLID":"I*P*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC","PATH":"Signals Intelligence/Space Track"},{"SYMBOLID":"I*P*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.COMM","PATH":"Signals Intelligence/Space Track/Signal Intercept"},{"SYMBOLID":"I*P*SCD-----***","DESCRIPTION":"Satellite Down-Link","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.1.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.COMM.SATDL","PATH":"Signals Intelligence/Space Track/Signal Intercept/Communications"},{"SYMBOLID":"I*P*SR------***","DESCRIPTION":"Radar(Signal Intercept)","DRAWCATEGORY":"0","HIERARCHY":"4.X.1.1.2","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD","PATH":"Signals Intelligence/Space Track/Signal Intercept"},{"SYMBOLID":"I*P*SRD-----***","DESCRIPTION":"Data Transmission(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.1","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRE-----***","DESCRIPTION":"Earth Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.2","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.ERHSVL","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRI-----***","DESCRIPTION":"IFF (Transponder)(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.3","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.IFF","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRM-----***","DESCRIPTION":"Multi-function(SPACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.4","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRT-----***","DESCRIPTION":"Target Acquisition(Space Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.5","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRS-----***","DESCRIPTION":"Space","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.6","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.SPC","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*P*SRU-----***","DESCRIPTION":"Unknown(Space Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.1.1.2.7","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Space Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*--------***","DESCRIPTION":"Air Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.2","ALPHAHIERARCHY":"SIGINT.AIRTRK","PATH":"Signals Intelligence"},{"SYMBOLID":"I*A*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC","PATH":"Signals Intelligence/Air Track"},{"SYMBOLID":"I*A*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM","PATH":"Signals Intelligence/Air Track/Signal Intercept"},{"SYMBOLID":"I*A*SCC-----***","DESCRIPTION":"Cellular/Mobile(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.2","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.3","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SCS-----***","DESCRIPTION":"Satellite Up-Link(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.1.4","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Communications"},{"SYMBOLID":"I*A*SR------***","DESCRIPTION":"Radar","DRAWCATEGORY":"0","HIERARCHY":"4.X.2.1.2","ALPHAHIERARCHY":"SIGINT.SPC.SIGINC.RAD","PATH":"Signals Intelligence/Air Track/Signal Intercept"},{"SYMBOLID":"I*A*SRAI----***","DESCRIPTION":"Airborne Intercept","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.1","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.ABNINC","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRAS----***","DESCRIPTION":"Airborne Search and Bombing","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.2","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.ABNSB","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRC-----***","DESCRIPTION":"Controlled Intercept(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.3","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.CTDINC","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRD-----***","DESCRIPTION":"Data Transmission(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.4","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRE-----***","DESCRIPTION":"Early Warning(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.5","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.EW","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRF-----***","DESCRIPTION":"Fire Control(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.6","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRI-----***","DESCRIPTION":"IFF (Transponder)(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.7","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.IFF","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMA----***","DESCRIPTION":"Missile Acquisition(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.8","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMD----***","DESCRIPTION":"Missile Downlink","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.9","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLDL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMG----***","DESCRIPTION":"Missile Guidance(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.10","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMT----***","DESCRIPTION":"Missile Tracking(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.11","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRMF----***","DESCRIPTION":"Multi-Function(AIR TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.12","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTI----***","DESCRIPTION":"Target Illuminator(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.13","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTA----***","DESCRIPTION":"Target Acquisition(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.14","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRTT----***","DESCRIPTION":"Target Tracking(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.15","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*A*SRU-----***","DESCRIPTION":"Unknown(Air Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.2.1.2.16","ALPHAHIERARCHY":"SIGINT.AIRTRK.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Air Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*--------***","DESCRIPTION":"Ground Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.3","ALPHAHIERARCHY":"SIGINT.GRDTRK","PATH":"Signals Intelligence"},{"SYMBOLID":"I*G*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC","PATH":"Signals Intelligence/Ground Track"},{"SYMBOLID":"I*G*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM","PATH":"Signals Intelligence/Ground Track/Signal Intercept"},{"SYMBOLID":"I*G*SCC-----***","DESCRIPTION":"Cellular/Mobile(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.2","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.3","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCS-----***","DESCRIPTION":"Satellite Up-Link(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.4","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SCT-----***","DESCRIPTION":"Tropospheric Scatter","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.1.5","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.COMM.TPSSCT","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Communications"},{"SYMBOLID":"I*G*SR------***","DESCRIPTION":"Radar(Signals Intelligence)","DRAWCATEGORY":"0","HIERARCHY":"4.X.3.1.2","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD","PATH":"Signals Intelligence/Ground Track/Signal Intercept"},{"SYMBOLID":"I*G*SRAT----***","DESCRIPTION":"Air Traffic Control(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.1","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.ATCTL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRAA----***","DESCRIPTION":"Anti-Aircraft(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.2","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.AAC","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRB-----***","DESCRIPTION":"Battlefield Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.3","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.BTFSVL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRCS----***","DESCRIPTION":"Coastal Surveillance","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.4","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.CSTSVL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRCA----***","DESCRIPTION":"Controlled Approach(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.5","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.CTDAPP","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRD-----***","DESCRIPTION":"Data Transmission(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.6","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRE-----***","DESCRIPTION":"Early Warning(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.7","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.EW","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRF-----***","DESCRIPTION":"Fire Control(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.8","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRH-----***","DESCRIPTION":"Height Finding(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.9","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.HGTFDG","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRI-----***","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.10","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.IDFF","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMM----***","DESCRIPTION":"Meteorological (Military)(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.11","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.METO","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMA----***","DESCRIPTION":"Missile Acquisition(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.12","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMG----***","DESCRIPTION":"Missile Guidance(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.13","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMT----***","DESCRIPTION":"Missile Tracking(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.14","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRMF----***","DESCRIPTION":"Multi-Function(GROUND TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.15","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRS-----***","DESCRIPTION":"Shell Tracking","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.16","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.SHETKG","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTA----***","DESCRIPTION":"Target Acquisition(Radar)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.17","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTI----***","DESCRIPTION":"Target Illuminator(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.18","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRTT----***","DESCRIPTION":"Target Tracking(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.19","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*G*SRU-----***","DESCRIPTION":"Unknown(Ground Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.3.1.2.20","ALPHAHIERARCHY":"SIGINT.GRDTRK.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Ground Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*--------***","DESCRIPTION":"Sea Surface Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.4","ALPHAHIERARCHY":"SIGINT.SSUF","PATH":"Signals Intelligence"},{"SYMBOLID":"I*S*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC","PATH":"Signals Intelligence/Sea Surface Track"},{"SYMBOLID":"I*S*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept"},{"SYMBOLID":"I*S*SCC-----***","DESCRIPTION":"Cellular/Mobile(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.CELL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.2","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.3","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SCS-----***","DESCRIPTION":"Satellite Up-Link(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.1.4","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*S*SR------***","DESCRIPTION":"Radar(Sea Surface Track)","DRAWCATEGORY":"0","HIERARCHY":"4.X.4.1.2","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept"},{"SYMBOLID":"I*S*SRAT----***","DESCRIPTION":"Air Traffic Control(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.1","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.ATCTL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRAA----***","DESCRIPTION":"Anti-Aircraft(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.2","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.AAC","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRCA----***","DESCRIPTION":"Controlled Approach(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.3","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.CTDAPP","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRCI----***","DESCRIPTION":"Controlled Intercept(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.4","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.CTDINC","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRD-----***","DESCRIPTION":"Data Transmission(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.5","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRE-----***","DESCRIPTION":"Early Warning(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.6","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.EW","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRF-----***","DESCRIPTION":"Fire Control(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.7","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.FIRCTL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRH-----***","DESCRIPTION":"Height Finding(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.8","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.HGTFDG","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRI-----***","DESCRIPTION":"Indentification Friend/Foe (Interrogator)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.9","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.IDFF","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMM----***","DESCRIPTION":"Meteorological (Military)(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.10","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.METO","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMA----***","DESCRIPTION":"Missile Acquisition(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.11","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLAQ","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMG----***","DESCRIPTION":"Missile Guidance(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.12","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLGDN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMT----***","DESCRIPTION":"Missile Tracking(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.13","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MSLTRK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRMF----***","DESCRIPTION":"Multi-Function(SEA SURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.14","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRS-----***","DESCRIPTION":"Surface Search(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.15","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.SUFSRH","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTA----***","DESCRIPTION":"Target Acquisition(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.16","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTI----***","DESCRIPTION":"Target Illuminator(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.17","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTILL","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRTT----***","DESCRIPTION":"Target Tracking(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.18","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.TGTTRK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*S*SRU-----***","DESCRIPTION":"Unknown(Sea Surface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.4.1.2.19","ALPHAHIERARCHY":"SIGINT.SSUF.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Sea Surface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*--------***","DESCRIPTION":"Subsurface Track","DRAWCATEGORY":"0","HIERARCHY":"4.X.5","ALPHAHIERARCHY":"SIGINT.SBSUF","PATH":"Signals Intelligence"},{"SYMBOLID":"I*U*S-------***","DESCRIPTION":"Signal Intercept","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC","PATH":"Signals Intelligence/Subsurface Track"},{"SYMBOLID":"I*U*SC------***","DESCRIPTION":"Communications","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept"},{"SYMBOLID":"I*U*SCO-----***","DESCRIPTION":"Omni-Line-Of-Sight (LOS)(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.OLOS","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SCP-----***","DESCRIPTION":"Point-To-Point Line-Of-Sight (LOS)(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.2","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.PTPLOS","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SCS-----***","DESCRIPTION":"Satellite Up-Link(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.1.3","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.COMM.SATUL","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Communications"},{"SYMBOLID":"I*U*SR------***","DESCRIPTION":"Radar(Subsurface Track)","DRAWCATEGORY":"0","HIERARCHY":"4.X.5.1.2","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept"},{"SYMBOLID":"I*U*SRD-----***","DESCRIPTION":"Data Transmission(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.1","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.DATTMN","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRE-----***","DESCRIPTION":"Early Warning(SUBSURFACE TRACK)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.2","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.EW","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRM-----***","DESCRIPTION":"Multi-Function(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.3","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.MFN","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRS-----***","DESCRIPTION":"Surface Search(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.4","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.SUFSRH","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRT-----***","DESCRIPTION":"Target Acquisition(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.5","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.TGTAQ","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"I*U*SRU-----***","DESCRIPTION":"Unknown(Subsurface Track)","DRAWCATEGORY":"8","HIERARCHY":"4.X.5.1.2.6","ALPHAHIERARCHY":"SIGINT.SBSUF.SIGINC.RAD.UNK","PATH":"Signals Intelligence/Subsurface Track/Signal Intercept/Radar"},{"SYMBOLID":"O*-*------*****","DESCRIPTION":"Stability Operations","DRAWCATEGORY":"0","HIERARCHY":"5.X","ALPHAHIERARCHY":"STBOPS"},{"SYMBOLID":"O*V*------*****","DESCRIPTION":"Violent Activities","DRAWCATEGORY":"0","HIERARCHY":"5.X.1","ALPHAHIERARCHY":"STBOPS.VIOATY","PATH":"Stability Operations"},{"SYMBOLID":"O*V*A-----*****","DESCRIPTION":"Arson/Fire","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.1","ALPHAHIERARCHY":"STBOPS.VIOATY.ASN","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*M-----*****","DESCRIPTION":"Killing (General)","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*MA----*****","DESCRIPTION":"Murder","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.1","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.MDR","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*MB----*****","DESCRIPTION":"Execution","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.2","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.EX","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*MC----*****","DESCRIPTION":"Assassination","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.2.3","ALPHAHIERARCHY":"STBOPS.VIOATY.KILL.ASS","PATH":"Stability Operations/Violent Activities/Killing (General)"},{"SYMBOLID":"O*V*B-----*****","DESCRIPTION":"Bomb/Bombing","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.3","ALPHAHIERARCHY":"STBOPS.VIOATY.BM","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*Y-----*****","DESCRIPTION":"Booby Trap","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.4","ALPHAHIERARCHY":"STBOPS.VIOATY.BBY","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*D-----*****","DESCRIPTION":"Drive-By Shooting","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.5","ALPHAHIERARCHY":"STBOPS.VIOATY.DBS","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*S-----*****","DESCRIPTION":"Sniping","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.6","ALPHAHIERARCHY":"STBOPS.VIOATY.SPG","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*P-----*****","DESCRIPTION":"Poisoning","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.7","ALPHAHIERARCHY":"STBOPS.VIOATY.PSNG","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*E-----*****","DESCRIPTION":"Explosion","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities"},{"SYMBOLID":"O*V*EI----*****","DESCRIPTION":"IED Explosion","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.1","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EG----*****","DESCRIPTION":"Explosion, Grenade","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.2","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EN----*****","DESCRIPTION":"Explosion, Incendiary","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.3","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EM----*****","DESCRIPTION":"Explosion, Mine","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.4","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EO----*****","DESCRIPTION":"Explosion, Mortar Fire","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.5","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*ER----*****","DESCRIPTION":"Explosion, Rocket","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.6","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*V*EV----*****","DESCRIPTION":"Explosion, Wheeled Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.1.8.7","ALPHAHIERARCHY":"STBOPS.VIOATY.EXPLSN.VEH","PATH":"Stability Operations/Violent Activities/Explosion"},{"SYMBOLID":"O*L*------*****","DESCRIPTION":"Locations","DRAWCATEGORY":"0","HIERARCHY":"5.X.2","ALPHAHIERARCHY":"STBOPS.LOCAT","PATH":"Stability Operations"},{"SYMBOLID":"O*L*B-----*****","DESCRIPTION":"Black List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.1","ALPHAHIERARCHY":"STBOPS.LOCAT.BLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*G-----*****","DESCRIPTION":"Gray List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.2","ALPHAHIERARCHY":"STBOPS.LOCAT.GLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*W-----*****","DESCRIPTION":"White List Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.3","ALPHAHIERARCHY":"STBOPS.LOCAT.WLST","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*M-----*****","DESCRIPTION":"Mass Grave Location","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.4","ALPHAHIERARCHY":"STBOPS.LOCAT.MASS","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*E-----H****","DESCRIPTION":"Drug Lab","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.6","ALPHAHIERARCHY":"STBOPS.LOCAT.DGLAB","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*H-----H****","DESCRIPTION":"House/Residence","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.7","ALPHAHIERARCHY":"STBOPS.LOCAT.HOUSE","PATH":"Stability Operations/LOCATIONS"},{"SYMBOLID":"O*L*N-----H****","DESCRIPTION":"Cave Entrance","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.8","ALPHAHIERARCHY":"STBOPS.LOCAT.CAVENT","PATH":"Stability Operations/Locations"},{"SYMBOLID":"O*L*H-----H****","DESCRIPTION":"Palace/Presidential Residence","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.9","ALPHAHIERARCHY":"STBOPS.LOCAT.HOUSE","PATH":"Stability Operations/lOCATIONS"},{"SYMBOLID":"O*L*F-----H****","DESCRIPTION":"Polling Place","DRAWCATEGORY":"8","HIERARCHY":"5.X.2.10","ALPHAHIERARCHY":"STBOPS.LOCAT.POLLPL","PATH":"Stability Operations/LOCATIONS"},{"SYMBOLID":"O*O*------*****","DESCRIPTION":"Operations","DRAWCATEGORY":"0","HIERARCHY":"5.X.3","ALPHAHIERARCHY":"STBOPS.OPN","PATH":"Stability Operations"},{"SYMBOLID":"O*O*P-----*****","DESCRIPTION":"Patrolling","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.1","ALPHAHIERARCHY":"STBOPS.OPN.PATG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*R-----*****","DESCRIPTION":"Recruitment","DRAWCATEGORY":"0","HIERARCHY":"5.X.3.2","ALPHAHIERARCHY":"STBOPS.OPN.RCMT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*RW----*****","DESCRIPTION":"Recruitment (Willing)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.2.1","ALPHAHIERARCHY":"STBOPS.OPN.RCMT.WLG","PATH":"Stability Operations/Operations/Recruitment"},{"SYMBOLID":"O*O*RC----*****","DESCRIPTION":"Recruitment (Coerced/Impressed)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.2.2","ALPHAHIERARCHY":"STBOPS.OPN.RCMT.CRCD","PATH":"Stability Operations/Operations/Recruitment"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Demonstration","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.3","ALPHAHIERARCHY":"STBOPS.OPN.DEMO","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*M-----*****","DESCRIPTION":"Mine Laying","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.4","ALPHAHIERARCHY":"STBOPS.OPN.ML","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*Y-----*****","DESCRIPTION":"Psychological Operations (Psyop)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*YT----*****","DESCRIPTION":"Psyop (TV and Radio Propaganda)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.1","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.TARP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*YW----*****","DESCRIPTION":"Psyop (Written Propaganda)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.2","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.WP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*YH----*****","DESCRIPTION":"House-to-House Propaganda","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.5.3","ALPHAHIERARCHY":"STBOPS.OPN.PSYOP.HTHP","PATH":"Stability Operations/Operations/Psychological Operations (Psyop)"},{"SYMBOLID":"O*O*F-----*****","DESCRIPTION":"Foraging/Searching","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.6","ALPHAHIERARCHY":"STBOPS.OPN.FRGSRH","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*S-----*****","DESCRIPTION":"Spy","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.7","ALPHAHIERARCHY":"STBOPS.OPN.SPY","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*O-----*****","DESCRIPTION":"Food Distribution","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.8","ALPHAHIERARCHY":"STBOPS.OPN.FDDIST","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*E-----*****","DESCRIPTION":"Extortion","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.9","ALPHAHIERARCHY":"STBOPS.OPN.EXTN","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*H-----*****","DESCRIPTION":"Hijacking","DRAWCATEGORY":"0","HIERARCHY":"5.X.3.10","ALPHAHIERARCHY":"STBOPS.OPN.HJKG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*HT----*****","DESCRIPTION":"Hijacking (Vehicle)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.1","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.VEH","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*HA----*****","DESCRIPTION":"Hijacking (Airplane)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.2","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.APL","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*HV----*****","DESCRIPTION":"Hijacking (Boat)","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.10.3","ALPHAHIERARCHY":"STBOPS.OPN.HJKG.BOAT","PATH":"Stability Operations/Operations/Hijacking"},{"SYMBOLID":"O*O*K-----*****","DESCRIPTION":"Kidnapping","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.11","ALPHAHIERARCHY":"STBOPS.OPN.KDNG","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*KA----*****","DESCRIPTION":"Attempted Kidnapping","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.11.1","ALPHAHIERARCHY":"STBOPS.OPN.KDNG.ATEMPT","PATH":"Stability Operations/Operations/Kidnapping"},{"SYMBOLID":"O*O*A-----*****","DESCRIPTION":"Arrest","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.12","ALPHAHIERARCHY":"STBOPS.OPN.ARR","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*U-----*****","DESCRIPTION":"Drug Operation","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.13","ALPHAHIERARCHY":"STBOPS.OPN.DGOPN","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*UT----*****","DESCRIPTION":"Drug Trafficking","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.13.1","ALPHAHIERARCHY":"STBOPS.OPN.DGOPN.DGTRFC","PATH":"Stability Operations/OPERATIONS/DRUG OPERATION"},{"SYMBOLID":"O*O*N-----*****","DESCRIPTION":"Raid on a House","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.14","ALPHAHIERARCHY":"STBOPS.OPN.HSRAID","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*2-----*****","DESCRIPTION":"Burglary","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.15","ALPHAHIERARCHY":"STBOPS.OPN.BRGLRY","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*V-----*****","DESCRIPTION":"Home Eviction","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.16","ALPHAHIERARCHY":"STBOPS.OPN.HSEVCT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*I-----*****","DESCRIPTION":"Black Marketing","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.17","ALPHAHIERARCHY":"STBOPS.OPM.BLKMKT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*J-----*****","DESCRIPTION":"Jail Break","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.18","ALPHAHIERARCHY":"STBOPS.OPN.JAILBREAK","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*B-----*****","DESCRIPTION":"Robbery","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.19","ALPHAHIERARCHY":"STBOPS.OPN.ROB","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*G-----*****","DESCRIPTION":"Sabotage","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.21","ALPHAHIERARCHY":"STBOPS.OPN.SABOTG","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*X-----*****","DESCRIPTION":"Smuggling","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.22","ALPHAHIERARCHY":"STBOPS.OPN.SMGLNG","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*O*W-----*****","DESCRIPTION":"Rock Throwing","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.23","ALPHAHIERARCHY":"STBOPS.OPN.RCKTHR","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*Z-----*****","DESCRIPTION":"Suspicious Activity","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.24","ALPHAHIERARCHY":"STBOPS.OPN.SUSACT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*T-----*****","DESCRIPTION":"Theft","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.25","ALPHAHIERARCHY":"STBOPS.OPN.THEFT","PATH":"Stability Operations/Operations"},{"SYMBOLID":"O*O*TV----*****","DESCRIPTION":"Wheeled Vehicle Theft","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.25.1","ALPHAHIERARCHY":"STBOPS.OPN.THEFT.VEH","PATH":"Stability Operations/OPERATIONS/THEFT"},{"SYMBOLID":"O*O*Q-----*****","DESCRIPTION":"Warrant Served","DRAWCATEGORY":"8","HIERARCHY":"5.X.3.26","ALPHAHIERARCHY":"STBOPS.OPN.WARRENT","PATH":"Stability Operations/OPERATIONS"},{"SYMBOLID":"O*I*------*****","DESCRIPTION":"Items","DRAWCATEGORY":"0","HIERARCHY":"5.X.4","ALPHAHIERARCHY":"STBOPS.ITM","PATH":"Stability Operations"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Refugees","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.1","ALPHAHIERARCHY":"STBOPS.ITM.RFG","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*S-----*****","DESCRIPTION":"Safe House","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.2","ALPHAHIERARCHY":"STBOPS.ITM.SAFHSE","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*G-----*****","DESCRIPTION":"Graffiti","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.3","ALPHAHIERARCHY":"STBOPS.ITM.GRF","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*V-----*****","DESCRIPTION":"Vandalism/Loot/Ransack/Plunder/Sack","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.4","ALPHAHIERARCHY":"STBOPS.ITM.VRLRPS","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*I-----*****","DESCRIPTION":"Known Insurgent Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.5","ALPHAHIERARCHY":"STBOPS.ITM.KNIVEH","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*D-----*****","DESCRIPTION":"Drug Vehicle","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.6","ALPHAHIERARCHY":"STBOPS.ITM.DGVEH","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*F-----*****","DESCRIPTION":"Internal Security Force","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.7","ALPHAHIERARCHY":"STBOPS.ITM.ISF","PATH":"Stability Operations/Items"},{"SYMBOLID":"O*I*M-----*****","DESCRIPTION":"Meeting","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.8","ALPHAHIERARCHY":"STBOPS.ITM.MEETING","PATH":"Stability Operations/ITEMS"},{"SYMBOLID":"O*I*T-----*****","DESCRIPTION":"Tent","DRAWCATEGORY":"8","HIERARCHY":"5.X.4.9","ALPHAHIERARCHY":"STBOPS.ITM.TENT","PATH":"Stability Operations/ITEMS"},{"SYMBOLID":"O*P*------*****","DESCRIPTION":"Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5","ALPHAHIERARCHY":"STBOPS.INDIV","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*A-----*****","DESCRIPTION":"Leader","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.1","ALPHAHIERARCHY":"STBOPS.INDIV.LEADER","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*AR----*****","DESCRIPTION":"Religious Leader","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.1.1","ALPHAHIERARCHY":"STBOPS.INDIV.LEADER.RELIGS","PATH":"Stability Operations/INDIVIDUAL/LEADER"},{"SYMBOLID":"O*P*B-----*****","DESCRIPTION":"Targeted Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.2","ALPHAHIERARCHY":"STBOPS.INDIV.TRGTD","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*C-----*****","DESCRIPTION":"Terrorist","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.3","ALPHAHIERARCHY":"STBOPS.INDIV.TERRST","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*P*D-----*****","DESCRIPTION":"Dead Body","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.4","ALPHAHIERARCHY":"STBOPS.INDIV.DDBODY","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*E-----*****","DESCRIPTION":"Speaker","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.5","ALPHAHIERARCHY":"STBOPS.INDIV.SPKR","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*P*F-----*****","DESCRIPTION":"IED Suicide Bomber","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.6","ALPHAHIERARCHY":"STBOPS.INDIV.SUICBM","PATH":"Stability Operations/Individual"},{"SYMBOLID":"O*P*G-----*****","DESCRIPTION":"Exfiltrating Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.7","ALPHAHIERARCHY":"STBOPS.INDIV.EXFLT","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*P*H-----*****","DESCRIPTION":"Infiltrating Individual","DRAWCATEGORY":"8","HIERARCHY":"5.X.5.8","ALPHAHIERARCHY":"STBOPS.INDIV.INFLT","PATH":"Stability Operations/INDIVIDUAL"},{"SYMBOLID":"O*G*------*****","DESCRIPTION":"Non-Military Group or Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6","ALPHAHIERARCHY":"STBOPS.GRPORG","PATH":"Stability Operations"},{"SYMBOLID":"O*G*B-----*****","DESCRIPTION":"Non-Governmental Organizations (NGO)","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.2","ALPHAHIERARCHY":"STBOPS.GRPORG.NGO","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*C-----*****","DESCRIPTION":"Terrorist Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.3","ALPHAHIERARCHY":"STBOPS.GRPORG.TERRST","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*D-----*****","DESCRIPTION":"Religious Organization","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.4","ALPHAHIERARCHY":"STBOPS.GRPORG.RELIGS","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*E-----*****","DESCRIPTION":"Foreign Fighter","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.5","ALPHAHIERARCHY":"STBOPS.GRPORG.FNFGHT","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*G*F-----*****","DESCRIPTION":"Gang","DRAWCATEGORY":"8","HIERARCHY":"5.X.6.6","ALPHAHIERARCHY":"STBOPS.GRPORG.GANG","PATH":"Stability Operations/NONMILITARY GROUP OR ORGANIZATION"},{"SYMBOLID":"O*R*------*****","DESCRIPTION":"Rape","DRAWCATEGORY":"8","HIERARCHY":"5.X.7","ALPHAHIERARCHY":"STBOPS.RAPE","PATH":"Stability Operations/RAPE"},{"SYMBOLID":"O*R*A-----*****","DESCRIPTION":"Attempted Rape","DRAWCATEGORY":"8","HIERARCHY":"5.X.7.1","ALPHAHIERARCHY":"STBOPS.RAPE.ATEMPT","PATH":"Stability Operations/Rape"},{"SYMBOLID":"O*E*------*****","DESCRIPTION":"Events SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10","ALPHAHIERARCHY":"STBOPS.SASO","PATH":"Stability Operations"},{"SYMBOLID":"O*E*A-----*****","DESCRIPTION":"Elections SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.1","ALPHAHIERARCHY":"STBOPS.SASO.ELCT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*B-----*****","DESCRIPTION":"Speech SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.2","ALPHAHIERARCHY":"STBOPS.SASO.SPH","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*C-----*****","DESCRIPTION":"Sermon SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.3","ALPHAHIERARCHY":"STBOPS.SASO.SRMN","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*D-----*****","DESCRIPTION":"Meeting SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.4","ALPHAHIERARCHY":"STBOPS.SASO.MTG","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*E-----*****","DESCRIPTION":"Demonstration(Events) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.5","ALPHAHIERARCHY":"STBOPS.SASO.DEMO","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*F-----*****","DESCRIPTION":"Riot SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.6","ALPHAHIERARCHY":"STBOPS.SASO.RIOT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*G-----*****","DESCRIPTION":"Gang Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.7","ALPHAHIERARCHY":"STBOPS.SASO.GANG","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*H-----*****","DESCRIPTION":"Jail Break/Escape Custody SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.8","ALPHAHIERARCHY":"STBOPS.SASO.JAIL.BK","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*I-----*****","DESCRIPTION":"Rock Throwing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.9","ALPHAHIERARCHY":"STBOPS.SASO.RCKTHR","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*J-----*****","DESCRIPTION":"Illegal Selling/Purchasing/Distributing/Black Market SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.10","ALPHAHIERARCHY":"STBOPS.SASO.BLKMKT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*K-----*****","DESCRIPTION":"Surveillance SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.11","ALPHAHIERARCHY":"STBOPS.SASO.SRVLLNCE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*L-----*****","DESCRIPTION":"Lights SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.12","ALPHAHIERARCHY":"STBOPS.SASO.LIT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*M-----*****","DESCRIPTION":"Border Crossing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.13","ALPHAHIERARCHY":"STBOPS.SASO.BRDCSG","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*N-----*****","DESCRIPTION":"Border Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.14","ALPHAHIERARCHY":"STBOPS.SASO.BRDACT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*O-----*****","DESCRIPTION":"Smuggling SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.15","ALPHAHIERARCHY":"STBOPS.SASO.SMGL","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*P-----*****","DESCRIPTION":"Exfiltration SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.16","ALPHAHIERARCHY":"STBOPS.SASO.EXFNLE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Q-----*****","DESCRIPTION":"Infiltration SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.17","ALPHAHIERARCHY":"STBOPS.SASO.INFNLE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*R-----*****","DESCRIPTION":"Auto Theft SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.18","ALPHAHIERARCHY":"STBOPS.SASO.AUTOTHEFT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*S-----*****","DESCRIPTION":"Auto Accident SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.19","ALPHAHIERARCHY":"STBOPS.SASO.AUTOACDNT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*T-----*****","DESCRIPTION":"Looting SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.20","ALPHAHIERARCHY":"STBOPS.SASO.LOOT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*U-----*****","DESCRIPTION":"Theft SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.21","ALPHAHIERARCHY":"STBOPS.SASO.THEFT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*V-----*****","DESCRIPTION":"Robbery SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.22","ALPHAHIERARCHY":"STBOPS.SASO.ROB","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*W-----*****","DESCRIPTION":"Home Eviction SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.23","ALPHAHIERARCHY":"STBOPS.SASO.HSEVCT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*X-----*****","DESCRIPTION":"Shooting (Non Deadly) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.24","ALPHAHIERARCHY":"STBOPS.SASO.SHTGND","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Y-----*****","DESCRIPTION":"Raid SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.25","ALPHAHIERARCHY":"STBOPS.SASO.RAID","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*Z-----*****","DESCRIPTION":"Sabotage SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.26","ALPHAHIERARCHY":"STBOPS.SASO.SABOTG","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AA----*****","DESCRIPTION":"Warrant Served SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.27","ALPHAHIERARCHY":"STBOPS.SASO.WARRNT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AB----*****","DESCRIPTION":"Rape SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.28","ALPHAHIERARCHY":"STBOPS.SASO.RAPE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AC----*****","DESCRIPTION":"Attempted Rape SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.29","ALPHAHIERARCHY":"STBOPS.SASO.RAPEATEMPT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AD----*****","DESCRIPTION":"Attack(Events) SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.30","ALPHAHIERARCHY":"STBOPS.SASO.ATK","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*ADA---*****","DESCRIPTION":"Attack on NGO SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.1","ALPHAHIERARCHY":"STBOPS.SASO.ATK.NGO","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADB---*****","DESCRIPTION":"Terrorist Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.2","ALPHAHIERARCHY":"STBOPS.SASO.ATK.TER","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADC---*****","DESCRIPTION":"Grenade Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.3","ALPHAHIERARCHY":"STBOPS.SASO.ATK.GREN","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*ADD---*****","DESCRIPTION":"Rocket Attack SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.30.4","ALPHAHIERARCHY":"STBOPS.SASO.ATK.ROCKET","PATH":"Stability Operations/Events/Attack"},{"SYMBOLID":"O*E*AE----*****","DESCRIPTION":"Explosions SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.31","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AEA---*****","DESCRIPTION":"Explosion (general) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.1","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.GEN","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEB---*****","DESCRIPTION":"Explosion, Mine SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.2","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.MINE","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEC---*****","DESCRIPTION":"Explosion, Grenade SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.3","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.GREN","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AED---*****","DESCRIPTION":"Explosion, Bomb SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.4","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.BOMB","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEE---*****","DESCRIPTION":"Explosion, Mortar Fire SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.5","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.MTRFR","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEF---*****","DESCRIPTION":"Explosion, Incendiary SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.6","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.INCEND","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEG---*****","DESCRIPTION":"Explosion, Rocket SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.7","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.ROCKET","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEH---*****","DESCRIPTION":"Explosion, Improvised Explosive Device (IED) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.8","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.IED","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEI---*****","DESCRIPTION":"Explosion, Car Bomb SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.9","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AEJ---*****","DESCRIPTION":"Suicide Bombing SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.31.10","ALPHAHIERARCHY":"STBOPS.SASO.EXPLSN.SUICBM","PATH":"Stability Operations/Events/Explosions"},{"SYMBOLID":"O*E*AF----*****","DESCRIPTION":"Fighting/Contact SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.10.32","ALPHAHIERARCHY":"STBOPS.SASO.FT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AFA---*****","DESCRIPTION":"Fighting (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.1","ALPHAHIERARCHY":"STBOPS.SASO.FT.GEN","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AFB---*****","DESCRIPTION":"Coalition vs. Enemy SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.2","ALPHAHIERARCHY":"STBOPS.SASO.FT.CLTNVENMY","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AFC---*****","DESCRIPTION":"Coalition vs. Coalition SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.32.3","ALPHAHIERARCHY":"STBOPS.SASO.FT.CLTNVCLTN","PATH":"Stability Operations/Events/Fighting and Contact"},{"SYMBOLID":"O*E*AG----*****","DESCRIPTION":"Drug Possession SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.33","ALPHAHIERARCHY":"STBOPS.SASO.DGPOS","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AH----*****","DESCRIPTION":"Drug Trafficking SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.34","ALPHAHIERARCHY":"STBOPS.SASO.DGTRFC","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AI----*****","DESCRIPTION":"Suspicious Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.35","ALPHAHIERARCHY":"STBOPS.SASO.SUSACT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AJ----*****","DESCRIPTION":"Activity SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.36","ALPHAHIERARCHY":"STBOPS.SASO.ACT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AK----*****","DESCRIPTION":"Threat SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.37","ALPHAHIERARCHY":"STBOPS.SASO.THT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AL----*****","DESCRIPTION":"Crater SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.38","ALPHAHIERARCHY":"STBOPS.SASO.CRTR","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AM----*****","DESCRIPTION":"Pothole SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.39","ALPHAHIERARCHY":"STBOPS.SASO.POTHOLE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AN----*****","DESCRIPTION":"Escalation of Force SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.40","ALPHAHIERARCHY":"STBOPS.SASO.ESCLTNFRCE","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AO----*****","DESCRIPTION":"Submunitions SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.41","ALPHAHIERARCHY":"STBOPS.SASO.SUBMNTN","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AP----*****","DESCRIPTION":"Confiscation SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.42","ALPHAHIERARCHY":"STBOPS.SASO.CONF","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AQ----*****","DESCRIPTION":"Counter Insurgency SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.43","ALPHAHIERARCHY":"STBOPS.SASO.CI","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AR----*****","DESCRIPTION":"Counter Terrorism SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.44","ALPHAHIERARCHY":"STBOPS.SASO.CT","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AS----*****","DESCRIPTION":"Humanitarian Assistance SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.45","ALPHAHIERARCHY":"STBOPS.SASO.HA","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AT----*****","DESCRIPTION":"Tests of Security SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.46","ALPHAHIERARCHY":"STBOPS.SASO.TOS","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AU----*****","DESCRIPTION":"AWOL SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.47","ALPHAHIERARCHY":"STBOPS.SASO.AWOL","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AV----*****","DESCRIPTION":"Curfew SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.48","ALPHAHIERARCHY":"STBOPS.SASO.CURFEW","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AW----*****","DESCRIPTION":"DUI SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.49","ALPHAHIERARCHY":"STBOPS.SASO.DUI","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*E*AX----*****","DESCRIPTION":"Prostitution SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.10.50","ALPHAHIERARCHY":"STBOPS.SASO.PROS","PATH":"Stability Operations/Events"},{"SYMBOLID":"O*Y*------*****","DESCRIPTION":"Organization/Groups SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.11","ALPHAHIERARCHY":"STBOPS.SASO.ORG","PATH":"Stability Operations"},{"SYMBOLID":"O*Y*A-----*****","DESCRIPTION":"Organization (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.1","ALPHAHIERARCHY":"STBOPS.SASO.ORG.GEN","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*B-----*****","DESCRIPTION":"NGO Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.2","ALPHAHIERARCHY":"STBOPS.SASO.ORG.NGO","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*C-----*****","DESCRIPTION":"Displaced Persons, Refugees SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.3","ALPHAHIERARCHY":"STBOPS.SASO.ORG.DPR","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*D-----*****","DESCRIPTION":"Terrorist Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.4","ALPHAHIERARCHY":"STBOPS.SASO.ORG.TERRST","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*E-----*****","DESCRIPTION":"Religious Organization SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.5","ALPHAHIERARCHY":"STBOPS.SASO.ORG.REL","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*F-----*****","DESCRIPTION":"Group Tribe Cell SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.6","ALPHAHIERARCHY":"STBOPS.SASO.ORG.GTC","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*G-----*****","DESCRIPTION":"Foreign Fighters SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.7","ALPHAHIERARCHY":"STBOPS.SASO.ORG.FNFGHT","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*R-----*****","DESCRIPTION":"Red Cross SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.8","ALPHAHIERARCHY":"STBOPS.SASO.ORG.RDCRSS","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SP----*****","DESCRIPTION":"State Police SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.9","ALPHAHIERARCHY":"STBOPS.SASO.ORG.STPOL","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*LP----*****","DESCRIPTION":"Local Police SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.10","ALPHAHIERARCHY":"STBOPS.SASO.ORG.LCPOL","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SH----*****","DESCRIPTION":"Shelter SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.11","ALPHAHIERARCHY":"STBOPS.SASO.ORG.SHL","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*FM----*****","DESCRIPTION":"FEMA SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.12","ALPHAHIERARCHY":"STBOPS.SASO.ORG.FEMA","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*SA----*****","DESCRIPTION":"Staging Area SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.13","ALPHAHIERARCHY":"STBOPS.SASO.","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*EP----*****","DESCRIPTION":"Evacuation Point SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.14","ALPHAHIERARCHY":"STBOPS.SASO.ORG.EVAC","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*Y*PD----*****","DESCRIPTION":"Person in Distress SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.11.15","ALPHAHIERARCHY":"STBOPS.SASO.ORG.PID","PATH":"Stability Operations/Organization and Groups"},{"SYMBOLID":"O*S*------*****","DESCRIPTION":"Structures SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.13","ALPHAHIERARCHY":"STBOPS.SASO.STRT","PATH":"Stability Operations"},{"SYMBOLID":"O*S*A-----*****","DESCRIPTION":"Compound/Post/Fort SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.1","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CPD","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*B-----*****","DESCRIPTION":"House/Residence SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.2","ALPHAHIERARCHY":"STBOPS.SASO.STRT.HSE","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*C-----*****","DESCRIPTION":"Safe House(Structures) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.3","ALPHAHIERARCHY":"STBOPS.SASO.STRT.SAFHSE","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*D-----*****","DESCRIPTION":"Church SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.4","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CHRCH","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*E-----*****","DESCRIPTION":"Mosque SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.5","ALPHAHIERARCHY":"STBOPS.SASO.STRT.MOS","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*F-----*****","DESCRIPTION":"Synagogue SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.6","ALPHAHIERARCHY":"STBOPS.SASO.STRT.SYN","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*G-----*****","DESCRIPTION":"Warehouse/Storage Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.7","ALPHAHIERARCHY":"STBOPS.SASO.STRT.WAREHS","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*H-----*****","DESCRIPTION":"Bunker/Underground Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.8","ALPHAHIERARCHY":"STBOPS.SASO.STRT.BKR","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*I-----*****","DESCRIPTION":"Tents SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.9","ALPHAHIERARCHY":"STBOPS.SASO.STRT.TENT","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*J-----*****","DESCRIPTION":"Cave SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.10","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CAVE","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*K-----*****","DESCRIPTION":"Camps SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.13.11","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CMP","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*KA----*****","DESCRIPTION":"Camp (General) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.1","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CMP.GEN","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*KB----*****","DESCRIPTION":"Displaced Persons/Refugees Camp SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.2","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CMP.DPRC","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*KC----*****","DESCRIPTION":"Training Camp SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.11.3","ALPHAHIERARCHY":"STBOPS.SASO.STRT.CMP.TRG","PATH":"Stability Operations/Structures/Camps"},{"SYMBOLID":"O*S*L-----*****","DESCRIPTION":"Prison/Detention Facility SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.12","ALPHAHIERARCHY":"STBOPS.SASO.STRT.PRSN","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*M-----*****","DESCRIPTION":"Police Station SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.13","ALPHAHIERARCHY":"STBOPS.SASO.STRT.POL","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*S*N-----*****","DESCRIPTION":"Palace/Presidential Residence SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.13.14","ALPHAHIERARCHY":"STBOPS.SASO.PAL","PATH":"Stability Operations/Structures"},{"SYMBOLID":"O*Q*------*****","DESCRIPTION":"Equipment/Weapons SASO","DRAWCATEGORY":"0","HIERARCHY":"5.X.14","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN","PATH":"Stability Operations"},{"SYMBOLID":"O*Q*A-----*****","DESCRIPTION":"Weapons Found SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.1","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.FIND","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*B-----*****","DESCRIPTION":"Weapons Cache SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.2","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.CACHE","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*C-----*****","DESCRIPTION":"Weapons Confiscated SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.3","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.CONF","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*D-----*****","DESCRIPTION":"Weapons Sale SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.4","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.SALE","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*E-----*****","DESCRIPTION":"Weapons Market SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.5","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.MKT","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*F-----*****","DESCRIPTION":"Chem/Bio Weapons Cache SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.6","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.BIO","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*G-----*****","DESCRIPTION":"Improvised Explosive Device (IED) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.7","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.IED","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*H-----*****","DESCRIPTION":"Unexploded Ordnance (UXO) SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.8","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.UXO","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*I-----*****","DESCRIPTION":"Horses SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.9","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.HRE","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*J-----*****","DESCRIPTION":"Camels SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.10","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.CML","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"O*Q*K-----*****","DESCRIPTION":"Donkeys SASO","DRAWCATEGORY":"8","HIERARCHY":"5.X.14.11","ALPHAHIERARCHY":"STBOPS.SASO.EQTWPN.DKY","PATH":"Stability Operations/Equipment and Weapons"},{"SYMBOLID":"E*-*------*****","DESCRIPTION":"Emergency Management Symbols","DRAWCATEGORY":"0","HIERARCHY":"6.X","ALPHAHIERARCHY":"EMS"},{"SYMBOLID":"E*I*------*****","DESCRIPTION":"Incident","DRAWCATEGORY":"0","HIERARCHY":"6.X.1","ALPHAHIERARCHY":"EMS.INCDNT","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*I*A-----*****","DESCRIPTION":"Civil Disturbance Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.1","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"O*O*D-----*****","DESCRIPTION":"Civil Demonstration","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.1.1","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.DEMO","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"O*I*R-----*****","DESCRIPTION":"Civil Displaced Population","DRAWCATEGORY":"0","HIERARCHY":"6.X.1.1.2","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.DISPOP","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"E*I*AC----*****","DESCRIPTION":"Civil Rioting","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.1.3","ALPHAHIERARCHY":"EMS.INCDNT.CVDIS.CVRIOT","PATH":"Emergency Management Symbols/Incident/Civil Disturbance Incident"},{"SYMBOLID":"E*I*B-----*****","DESCRIPTION":"Criminal Activity Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*BA----*****","DESCRIPTION":"Bomb Threat","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.1","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.BMTHT","PATH":"Emergency Management Symbols/Incident/Criminal Activity Incident"},{"SYMBOLID":"O*V*B-----*****","DESCRIPTION":"Bomb","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.2","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.BM","PATH":"Emergency Management Symbols/Incident/Criminal Activity Incident"},{"SYMBOLID":"E*I*BC----*****","DESCRIPTION":"Explosion (Bomb)","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.3","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.EXPLN","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"E*I*BD----*****","DESCRIPTION":"Looting","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.4","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.LOOT","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"O*V*P-----*****","DESCRIPTION":"Poisoning","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.5","ALPHAHIERARCHY":"EMS.INCDNT.CRMACT.PSNG","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"E*I*BF----*****","DESCRIPTION":"Shooting","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.2.6","ALPHAHIERARCHY":"EMS..INCDNT.CRMACT.SHTG","PATH":"EMERGENCY MANAGEMENT SYMBOLS/INCIDENT/CRIMINAL ACTIVITY INCIDENT"},{"SYMBOLID":"E*I*C-----*****","DESCRIPTION":"Fire Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3","ALPHAHIERARCHY":"EMS.INCDNT.FIRE","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*CA----*****","DESCRIPTION":"Hot Spot","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.1","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.HTSPT","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CB----*****","DESCRIPTION":"Non-Residential Fire","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.2","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.NRES","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CC----*****","DESCRIPTION":"Origin","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.3","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.ORGN","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CD----*****","DESCRIPTION":"Residential Fire","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.4","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.RES","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CE----*****","DESCRIPTION":"School Fire","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.5","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.SCH","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CF----*****","DESCRIPTION":"Smoke","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.6","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.SMK","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CG----*****","DESCRIPTION":"Special Needs Fire","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.7","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.SN","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*CH----*****","DESCRIPTION":"Wild Fire","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.3.8","ALPHAHIERARCHY":"EMS.INCDNT.FIRE.WLD","PATH":"Emergency Management Symbols/Incident/Fire Incident"},{"SYMBOLID":"E*I*D-----*****","DESCRIPTION":"Hazardous Material Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*DA----*****","DESCRIPTION":"Chemical Agent","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.1","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.CHMAGT","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DB----*****","DESCRIPTION":"Corrosive Material","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.2","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.CORMTL","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DC----*****","DESCRIPTION":"Hazardous When Wet","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.3","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.WHWET","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DD----*****","DESCRIPTION":"Explosive","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.4","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.EXPLV","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DE----*****","DESCRIPTION":"Flammable Gas","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.5","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.FLGAS","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DF----*****","DESCRIPTION":"Flammable Liquid","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.6","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.FLLIQ","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DG----*****","DESCRIPTION":"Flammable Solid","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.7","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.FLSLD","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DH----*****","DESCRIPTION":"Non-Flammable Gas","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.8","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.NFLGAS","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DI----*****","DESCRIPTION":"Organic Peroxide","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.9","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.ORGPER","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DJ----*****","DESCRIPTION":"Oxidizer","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.10","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.OXDZR","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DK----*****","DESCRIPTION":"Radioactive Material","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.11","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.RADMTL","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DL----*****","DESCRIPTION":"Spontaneously Combustible","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.12","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.SPCMB","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DM----*****","DESCRIPTION":"Toxic Gas","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.13","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.TXGAS","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DN----*****","DESCRIPTION":"Toxic and Infectious","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.14","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.TXINF","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*DO----*****","DESCRIPTION":"Unexploded Ordinance","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.4.15","ALPHAHIERARCHY":"EMS.INCDNT.HAZMAT.UNXORD","PATH":"Emergency Management Symbols/Incident/Hazardous Material Incident"},{"SYMBOLID":"E*I*E-----*****","DESCRIPTION":"Air Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.5","ALPHAHIERARCHY":"EMS.INCDNT.AIR","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*EA----*****","DESCRIPTION":"Air Accident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.5.1","ALPHAHIERARCHY":"EMS.INCDNT.AIR.ACDNT","PATH":"Emergency Management Symbols/Incident/Air Incident"},{"SYMBOLID":"O*O*HA----*****","DESCRIPTION":"Air Hijacking","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.5.2","ALPHAHIERARCHY":"EMS.INCDNT.AIR.HJKG.APL","PATH":"Emergency Management Symbols/Incident/Air Incident"},{"SYMBOLID":"E*I*F-----*****","DESCRIPTION":"Marine Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.6","ALPHAHIERARCHY":"EMS.INCDNT.MRN","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*FA----*****","DESCRIPTION":"Marine Accident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.6.1","ALPHAHIERARCHY":"EMS.INCDNT.MRN.ACDNT","PATH":"Emergency Management Symbols/Incident/Marine Incident"},{"SYMBOLID":"O*O*HV----*****","DESCRIPTION":"Marine Hijacking","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.6.2","ALPHAHIERARCHY":"EMS.INCDNT.MRN.HJKG","PATH":"Emergency Management Symbols/Incident/Marine Incident"},{"SYMBOLID":"E*I*G-----*****","DESCRIPTION":"Rail Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.7","ALPHAHIERARCHY":"EMS.INCDNT.RAIL","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*GA----*****","DESCRIPTION":"Rail Accident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.7.1","ALPHAHIERARCHY":"EMS.INCDNT.RAIL.ACDNT","PATH":"Emergency Management Symbols/Incident/Rail Incident"},{"SYMBOLID":"E*I*GB----*****","DESCRIPTION":"Rail Hijacking","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.7.2","ALPHAHIERARCHY":"EMS.INCDNT.RAIL.HJCK","PATH":"Emergency Management Symbols/Incident/Rail Incident"},{"SYMBOLID":"E*I*H-----*****","DESCRIPTION":"Vehicle Incident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.8","ALPHAHIERARCHY":"EMS.INCDNT.VEH","PATH":"Emergency Management Symbols/Incident"},{"SYMBOLID":"E*I*HA----*****","DESCRIPTION":"Vehicle Accident","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.8.1","ALPHAHIERARCHY":"EMS.INCDNT.VEH.ACDNT","PATH":"Emergency Management Symbols/Incident/Vehicle Incident"},{"SYMBOLID":"O*O*HT----*****","DESCRIPTION":"Vehicle Hijacking","DRAWCATEGORY":"8","HIERARCHY":"6.X.1.8.2","ALPHAHIERARCHY":"EMS.INCDNT.VEH.HJKG","PATH":"Emergency Management Symbols/Incident/Vehicle Incident"},{"SYMBOLID":"E*N*------*****","DESCRIPTION":"Natural Events","DRAWCATEGORY":"0","HIERARCHY":"6.X.2","ALPHAHIERARCHY":"EMS.NATEVT","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*O*------*****","DESCRIPTION":"Operations","DRAWCATEGORY":"0","HIERARCHY":"6.X.3","ALPHAHIERARCHY":"EMS.OPN","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*O*A-----*****","DESCRIPTION":"Emergency Medical Operation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1","ALPHAHIERARCHY":"EMS.OPN.EMMED","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*AA----*****","DESCRIPTION":"Emergency Medical Operation Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.1","ALPHAHIERARCHY":"EMS.OPN.EMMED.UNT","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AB----*****","DESCRIPTION":"Emergency Medical Operation Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.2","ALPHAHIERARCHY":"EMS.OPN.EMMED.EQPT","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AC----H****","DESCRIPTION":"Emergency Medical Operation Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.3","ALPHAHIERARCHY":"EMS.OPN.EMMED.INS","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AD----H****","DESCRIPTION":"EMT Station Location","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.4","ALPHAHIERARCHY":"EMS.OPN.EMMED.EMTLOC","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AE----*****","DESCRIPTION":"Ambulance","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.5","ALPHAHIERARCHY":"EMS.OPN.EMMED.AMBLNC","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AF----*****","DESCRIPTION":"Medical Evacuation Helicopter","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.6","ALPHAHIERARCHY":"EMS.OPN.EMMED.MEH","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AG----H****","DESCRIPTION":"Health Department Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.7","ALPHAHIERARCHY":"EMS.OPN.EMMED.HDF","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"S*G*IXH---H****","DESCRIPTION":"Hospital","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.8","ALPHAHIERARCHY":"EMS.OPN.EMMED.HSP","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"S*S*NM----*****","DESCRIPTION":"Hospital Ship","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.9","ALPHAHIERARCHY":"EMS.OPN.EMMED.HSPSHP","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AJ----H****","DESCRIPTION":"Medical Facilities Out Patient","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.10","ALPHAHIERARCHY":"EMS.OPN.EMMED.MFOP","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AK----H****","DESCRIPTION":"Morgue","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.11","ALPHAHIERARCHY":"EMS.OPN.EMMED.MRG","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AL----H****","DESCRIPTION":"Pharmacy","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.12","ALPHAHIERARCHY":"EMS.OPN.EMMED.RX","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*AM----H****","DESCRIPTION":"Triage","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.1.13","ALPHAHIERARCHY":"EMS.OPN.EMMED.TRIAGE","PATH":"Emergency Management Symbols/Operations/Emergency Medical Operation"},{"SYMBOLID":"E*O*B-----*****","DESCRIPTION":"Emergency Operation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2","ALPHAHIERARCHY":"EMS.OPN.EMOPN","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*BA----*****","DESCRIPTION":"Emergency Operation Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.1","ALPHAHIERARCHY":"EMS.OPN.EMOPN.UNT","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BB----*****","DESCRIPTION":"Emergency Operation Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.2","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EQPT","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BC----H****","DESCRIPTION":"Emergency Operation Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.3","ALPHAHIERARCHY":"EMS.OPN.EMOPN.INS","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BD----*****","DESCRIPTION":"Emergency Collection Evacuation Point","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.4","ALPHAHIERARCHY":"EMS.OPN.EMOPN.ECEP","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BE----H****","DESCRIPTION":"Emergency Incident Command Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.5","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EICC","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BF----H****","DESCRIPTION":"Emergency Operations Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.6","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EOC","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BG----H****","DESCRIPTION":"Emergency Public Information Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.7","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EPIC","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BH----H****","DESCRIPTION":"Emergency Shelter","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.8","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EMSHLT","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BI----H****","DESCRIPTION":"Emergency Staging Area","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.9","ALPHAHIERARCHY":"EMS.OPN.EMOPN.ESA","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BJ----*****","DESCRIPTION":"Emergency Team","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.10","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EMTM","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BK----H****","DESCRIPTION":"Emergency Water Distribution Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.11","ALPHAHIERARCHY":"EMS.OPN.EMOPN.EWDC","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*BL----H****","DESCRIPTION":"Emergency Food Distribution Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.2.12","ALPHAHIERARCHY":"EMS.OPN.EMOPN.FDDIST","PATH":"Emergency Management Symbols/Operations/Emergency Operation"},{"SYMBOLID":"E*O*C-----*****","DESCRIPTION":"Fire Fighting Operation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3","ALPHAHIERARCHY":"EMS.OPN.FIRFT","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*CA----*****","DESCRIPTION":"Fire Fighting Operation Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3.1","ALPHAHIERARCHY":"EMS.OPN.FIRFT.FIRFTU","PATH":"Emergency Management Symbols/Operations/Fire Fighting Operation"},{"SYMBOLID":"E*O*CB----*****","DESCRIPTION":"Fire Fighting Operation Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3.2","ALPHAHIERARCHY":"EMS.OPN.FIRFT.FIRFTE","PATH":"Emergency Management Symbols/Operations/Fire Fighting Operation"},{"SYMBOLID":"E*O*CC----*****","DESCRIPTION":"Fire Hydrant","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3.3","ALPHAHIERARCHY":"EMS.OPN.FIRFT.FIRHYD","PATH":"Emergency Management Symbols/Operations/Fire Fighting Operation"},{"SYMBOLID":"E*O*CD----H****","DESCRIPTION":"Other Water Supply Location","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3.4","ALPHAHIERARCHY":"EMS.OPN.FIRFT.OTHH2O","PATH":"Emergency Management Symbols/Operations/Fire Fighting Operation"},{"SYMBOLID":"E*O*CE----H****","DESCRIPTION":"Fire Station","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.3.5","ALPHAHIERARCHY":"EMS.OPN.FIRFT.FIRSTN","PATH":"Emergency Management Symbols/Operations/Fire Fighting Operation"},{"SYMBOLID":"E*O*D-----*****","DESCRIPTION":"Law Enforcement Operation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4","ALPHAHIERARCHY":"EMS.OPN.LAWENF","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*DA----*****","DESCRIPTION":"Law Enforcement Operation Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.LAWENU","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DB----*****","DESCRIPTION":"Law Enforcement Operation Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.LAWENE","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DC----H****","DESCRIPTION":"Law Enforcement Operation Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.LAWENI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DD----*****","DESCRIPTION":"ATF","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.4","ALPHAHIERARCHY":"EMS.OPN.LAWENF.ATF","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DDA---*****","DESCRIPTION":"ATF Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.4.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.ATF.ATFUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/ATF"},{"SYMBOLID":"E*O*DDB---*****","DESCRIPTION":"ATF Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.4.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.ATF.ATFEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/ATF"},{"SYMBOLID":"E*O*DDC---H****","DESCRIPTION":"ATF Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.4.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.ATF.ATFINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/ATF"},{"SYMBOLID":"E*O*DE----*****","DESCRIPTION":"Border Patrol","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.5","ALPHAHIERARCHY":"EMS.OPN.LAWENF.BDRPT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DEA---*****","DESCRIPTION":"Border Patrol Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.5.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.BDRPT.BDRPTU","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Border Patrol"},{"SYMBOLID":"E*O*DEB---*****","DESCRIPTION":"Border Patrol Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.5.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.BDRPT.BDRPTE","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Border Patrol"},{"SYMBOLID":"E*O*DEC---H****","DESCRIPTION":"Border Patrol Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.5.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.BDRPT.BDRPTI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Border Patrol"},{"SYMBOLID":"E*O*DF----*****","DESCRIPTION":"Customs Service","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.6","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTM","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DFA---*****","DESCRIPTION":"Customs Service Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.6.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTM.CSTMUN","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Customs Service"},{"SYMBOLID":"E*O*DFB---*****","DESCRIPTION":"Customs Service Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.6.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTM.CSTMEQ","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Customs Service"},{"SYMBOLID":"E*O*DFC---H****","DESCRIPTION":"Customs Service Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.6.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTM.CSTMIN","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Customs Service"},{"SYMBOLID":"E*O*DG----*****","DESCRIPTION":"DEA","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.7","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DEA","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DGA---*****","DESCRIPTION":"DEA Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.7.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DEA.DEAUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DEA"},{"SYMBOLID":"E*O*DGB---*****","DESCRIPTION":"DEA Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.7.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DEA.DEAEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DEA"},{"SYMBOLID":"E*O*DGC---H****","DESCRIPTION":"DEA Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.7.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DEA.DEAINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DEA"},{"SYMBOLID":"E*O*DH----*****","DESCRIPTION":"DOJ","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.8","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DOJ","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DHA---*****","DESCRIPTION":"DOJ Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.8.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DOJ.DOJUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DOJ"},{"SYMBOLID":"E*O*DHB---*****","DESCRIPTION":"DOJ Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.8.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DOJ.DOJEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DOJ"},{"SYMBOLID":"E*O*DHC---H****","DESCRIPTION":"DOJ Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.8.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.DOJ.DOJINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/DOJ"},{"SYMBOLID":"E*O*DI----*****","DESCRIPTION":"FBI","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.9","ALPHAHIERARCHY":"EMS.OPN.LAWENF.FBI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DIA---*****","DESCRIPTION":"FBI Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.9.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.FBI.FBIUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/FBI"},{"SYMBOLID":"E*O*DIB---*****","DESCRIPTION":"FBI Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.9.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.FBI.FBIEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/FBI"},{"SYMBOLID":"E*O*DIC---H****","DESCRIPTION":"FBI Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.9.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.FBI.FBIINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/FBI"},{"SYMBOLID":"E*O*DJ----*****","DESCRIPTION":"Police","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.10","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"S*G*UULC--*****","DESCRIPTION":"Police Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.10.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL.POLUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Police"},{"SYMBOLID":"E*O*DJB---*****","DESCRIPTION":"Police Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.10.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL.POLEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Police"},{"SYMBOLID":"E*O*DJC---H****","DESCRIPTION":"Police Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.10.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.POL.POLINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Police"},{"SYMBOLID":"E*O*DK----H****","DESCRIPTION":"Prison","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.11","ALPHAHIERARCHY":"EMS.OPN.LAWENF.PRSN","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DL----*****","DESCRIPTION":"Secret Service","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.12","ALPHAHIERARCHY":"EMS.OPN.LAWENF.SECSR","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DLA---*****","DESCRIPTION":"Secret Service Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.12.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.SECSR.SECSRU","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Secret Service"},{"SYMBOLID":"E*O*DLB---*****","DESCRIPTION":"Secret Service Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.12.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.SECSR.SECSRE","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Secret Service"},{"SYMBOLID":"E*O*DLC---H****","DESCRIPTION":"Secret Service Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.12.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.SECSR.SECSRI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Secret Service"},{"SYMBOLID":"E*O*DM----*****","DESCRIPTION":"TSA","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.13","ALPHAHIERARCHY":"EMS.OPN.LAWENF.TSA","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DMA---*****","DESCRIPTION":"TSA Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.13.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.TSA.TSAUNT","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/TSA"},{"SYMBOLID":"E*O*DMB---*****","DESCRIPTION":"TSA Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.13.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.TSA.TSAEQP","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/TSA"},{"SYMBOLID":"E*O*DMC---H****","DESCRIPTION":"TSA Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.13.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.TSA.TSAINS","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/TSA"},{"SYMBOLID":"E*O*DN----*****","DESCRIPTION":"Coast Guard","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.14","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTGD","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DNA---*****","DESCRIPTION":"Coast Guard Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.14.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTGD.CSTGDU","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Coast Guard"},{"SYMBOLID":"S*S*XL----*****","DESCRIPTION":"Coast Guard Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.14.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTGD.CSTGDE","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Coast Guard"},{"SYMBOLID":"E*O*DNC---H****","DESCRIPTION":"Coast Guard Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.14.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.CSTGD.CSTGDI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/Coast Guard"},{"SYMBOLID":"E*O*DO----*****","DESCRIPTION":"US Marshals Service","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.15","ALPHAHIERARCHY":"EMS.OPN.LAWENF.USMAR","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation"},{"SYMBOLID":"E*O*DOA---*****","DESCRIPTION":"US Marshals Service Unit","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.15.1","ALPHAHIERARCHY":"EMS.OPN.LAWENF.USMAR.USMARU","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/US Marshals Service"},{"SYMBOLID":"E*O*DOB---*****","DESCRIPTION":"US Marshals Service Equipment","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.15.2","ALPHAHIERARCHY":"EMS.OPN.LAWENF.USMAR.USMARE","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/US Marshals Service"},{"SYMBOLID":"E*O*DOC---H****","DESCRIPTION":"US Marshals Service Installation","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.4.15.3","ALPHAHIERARCHY":"EMS.OPN.LAWENF.USMAR.USMARI","PATH":"Emergency Management Symbols/Operations/Law Enforcement Operation/US Marshals Service"},{"SYMBOLID":"S*G*ES----*****","DESCRIPTION":"Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5","ALPHAHIERARCHY":"EMS.OPN.SNS","PATH":"Emergency Management Symbols/Operations"},{"SYMBOLID":"E*O*EA----*****","DESCRIPTION":"Biological Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5.1","ALPHAHIERARCHY":"EMS.OPN.SNS.BIO","PATH":"Emergency Management Symbols/Operations/Sensor"},{"SYMBOLID":"E*O*EB----*****","DESCRIPTION":"Chemical Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5.2","ALPHAHIERARCHY":"EMS.OPN.SNS.CML","PATH":"Emergency Management Symbols/Operations/Sensor"},{"SYMBOLID":"E*O*EC----*****","DESCRIPTION":"Intrusion Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5.3","ALPHAHIERARCHY":"EMS.OPN.SNS.INT","PATH":"Emergency Management Symbols/Operations/Sensor"},{"SYMBOLID":"E*O*ED----*****","DESCRIPTION":"Nuclear Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5.4","ALPHAHIERARCHY":"EMS.OPN.SNS.NUC","PATH":"Emergency Management Symbols/Operations/Sensor"},{"SYMBOLID":"E*O*EE----*****","DESCRIPTION":"Radiological Sensor","DRAWCATEGORY":"8","HIERARCHY":"6.X.3.5.5","ALPHAHIERARCHY":"EMS.OPN.SNS.RAD","PATH":"Emergency Management Symbols/Operations/Sensor"},{"SYMBOLID":"E*F*------H****","DESCRIPTION":"Infrastructure","DRAWCATEGORY":"0","HIERARCHY":"6.X.4","ALPHAHIERARCHY":"EMS.INFSTR","PATH":"Emergency Management Symbols"},{"SYMBOLID":"E*F*A-----H****","DESCRIPTION":"Agriculture and Food Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1","ALPHAHIERARCHY":"EMS.INFSTR.AGFD","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*AA----H****","DESCRIPTION":"Agricultural Laboratory","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.1","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.AGLAB","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AB----H****","DESCRIPTION":"Animal Feedlot","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.2","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.AFL","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AC----H****","DESCRIPTION":"Commercial Food Distribution Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.3","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.CFDC","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AD----H****","DESCRIPTION":"Farm/Ranch","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.4","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.FRMRNC","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AE----H****","DESCRIPTION":"Food Production Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.5","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.FPC","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AF----H****","DESCRIPTION":"Food Retail","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.6","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.FDRTL","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*AH----H****","DESCRIPTION":"Grain Storage","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.1.7","ALPHAHIERARCHY":"EMS.INFSTR.AGFD.GRSTR","PATH":"Emergency Management Symbols/Infrastructure/Agriculture and Food Infrastructure"},{"SYMBOLID":"E*F*B-----H****","DESCRIPTION":"Banking Finance and Insurance Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2","ALPHAHIERARCHY":"EMS.INFSTR.BFI","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*BA----*****","DESCRIPTION":"ATM","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.1","ALPHAHIERARCHY":"EMS.INFSTR.BFI.ATM","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*BB----H****","DESCRIPTION":"Bank","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.2","ALPHAHIERARCHY":"EMS.INFSTR.BFI.BANK","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*BC----H****","DESCRIPTION":"Bullion Storage","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.3","ALPHAHIERARCHY":"EMS.INFSTR.BFI.BLSTR","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*BD----H****","DESCRIPTION":"Federal Reserve Bank","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.4","ALPHAHIERARCHY":"EMS.INFSTR.BFI.FRB","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*BE----H****","DESCRIPTION":"Financial Exchange","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.5","ALPHAHIERARCHY":"EMS.INFSTR.BFI.FINEX","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*BF----H****","DESCRIPTION":"Financial Services Other","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.2.6","ALPHAHIERARCHY":"EMS.INFSTR.BFI.FSO","PATH":"Emergency Management Symbols/Infrastructure/Banking Finance and Insurance Infrastructure"},{"SYMBOLID":"E*F*C-----H****","DESCRIPTION":"Commercial Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3","ALPHAHIERARCHY":"EMS.INFSTR.CMCL","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*CA----H****","DESCRIPTION":"Chemical Plant","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.1","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.CMLPLN","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CB----H****","DESCRIPTION":"Firearms Manufacturer","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.2","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.FIRMAN","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CC----H****","DESCRIPTION":"Firearms Retailer","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.3","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.FIRRET","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CD----H****","DESCRIPTION":"Hazardous Material Production","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.4","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.HZMTPR","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CE----H****","DESCRIPTION":"Hazardous Material Storage","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.5","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.HZMTST","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CF----H****","DESCRIPTION":"Industrial Site","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.6","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.INDSTE","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CG----*****","DESCRIPTION":"Landfill","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.7","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.LNDFL","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CH----H****","DESCRIPTION":"Pharmaceutical Manufacturer","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.8","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.RXMFG","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CI----H****","DESCRIPTION":"Contaminated Hazardous Waste Site","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.9","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.CHWS","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*CJ----H****","DESCRIPTION":"Toxic Release Inventory","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.3.10","ALPHAHIERARCHY":"EMS.INFSTR.CMCL.TXRLIN","PATH":"Emergency Management Symbols/Infrastructure/Commercial Infrastructure"},{"SYMBOLID":"E*F*D-----H****","DESCRIPTION":"Educational Facilties Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.4","ALPHAHIERARCHY":"EMS.INFSTR.EDFAC","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*DA----H****","DESCRIPTION":"College University","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.4.1","ALPHAHIERARCHY":"EMS.INFSTR.EDFAC.COLUNI","PATH":"Emergency Management Symbols/Infrastructure/Educational Facilties Infrastructure"},{"SYMBOLID":"E*F*DB----H****","DESCRIPTION":"School","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.4.2","ALPHAHIERARCHY":"EMS.INFSTR.EDFAC.SCHOOL","PATH":"Emergency Management Symbols/Infrastructure/Educational Facilties Infrastructure"},{"SYMBOLID":"S*G*IUE---H****","DESCRIPTION":"Energy Facilities Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*EA----H****","DESCRIPTION":"Generation Station","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5.1","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC.GENSTA","PATH":"Emergency Management Symbols/Infrastructure/Energy Facilities Infrastructure"},{"SYMBOLID":"E*F*EB----H****","DESCRIPTION":"Natural Gas Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5.2","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC.NTLGAS","PATH":"Emergency Management Symbols/Infrastructure/Energy Facilities Infrastructure"},{"SYMBOLID":"S*G*IUEN--H****","DESCRIPTION":"Nuclear Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5.3","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC.NUCFAC","PATH":"Emergency Management Symbols/Infrastructure/Energy Facilities Infrastructure"},{"SYMBOLID":"S*G*IRP---*****","DESCRIPTION":"Petrolium Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5.4","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC.PETFAC","PATH":"Emergency Management Symbols/Infrastructure/Energy Facilities Infrastructure"},{"SYMBOLID":"E*F*EE----H****","DESCRIPTION":"Propane Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.5.5","ALPHAHIERARCHY":"EMS.INFSTR.ENGFAC.PROPNE","PATH":"Emergency Management Symbols/Infrastructure/Energy Facilities Infrastructure"},{"SYMBOLID":"E*F*F-----H****","DESCRIPTION":"Government Site Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.6","ALPHAHIERARCHY":"EMS.INFSTR.GVTSTE","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*G-----H****","DESCRIPTION":"Military Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.7","ALPHAHIERARCHY":"EMS.INFSTR.MIL","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*GA----H****","DESCRIPTION":"Military Armory","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.7.1","ALPHAHIERARCHY":"EMS.INFSTR.MIL.ARMORY","PATH":"Emergency Management Symbols/Infrastructure/Military Infrastructure"},{"SYMBOLID":"S*G*IB----H****","DESCRIPTION":"Military Base","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.7.2","ALPHAHIERARCHY":"EMS.INFSTR.MIL.MILBF","PATH":"Emergency Management Symbols/Infrastructure/Military Infrastructure"},{"SYMBOLID":"E*F*H-----H****","DESCRIPTION":"Postal Service Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.8","ALPHAHIERARCHY":"EMS.INFSTR.PSTSRV","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*HA----H****","DESCRIPTION":"Postal Distribution Center","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.8.1","ALPHAHIERARCHY":"EMS.INFSTR.PSTSRV.PDC","PATH":"Emergency Management Symbols/Infrastructure/Postal Service Infrastructure"},{"SYMBOLID":"E*F*HB----H****","DESCRIPTION":"Post Office","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.8.2","ALPHAHIERARCHY":"EMS.INFSTR.PSTSRV.PO","PATH":"Emergency Management Symbols/Infrastructure/Postal Service Infrastructure"},{"SYMBOLID":"E*F*I-----H****","DESCRIPTION":"Public Venues Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.9","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*IA----H****","DESCRIPTION":"Enclosed Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.9.1","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN.ENCFAC","PATH":"Emergency Management Symbols/Infrastructure/Public Venues Infrastructure"},{"SYMBOLID":"E*F*IB----H****","DESCRIPTION":"Open Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.9.2","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN.OPNFAC","PATH":"Emergency Management Symbols/Infrastructure/Public Venues Infrastructure"},{"SYMBOLID":"E*F*IC----H****","DESCRIPTION":"Recreational Area","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.9.3","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN.RECARE","PATH":"Emergency Management Symbols/Infrastructure/Public Venues Infrastructure"},{"SYMBOLID":"E*F*ID----H****","DESCRIPTION":"Religious Institution","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.9.4","ALPHAHIERARCHY":"EMS.INFSTR.PUBVEN.RELIG","PATH":"Emergency Management Symbols/Infrastructure/Public Venues Infrastructure"},{"SYMBOLID":"E*F*J-----H****","DESCRIPTION":"Special Needs Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.10","ALPHAHIERARCHY":"EMS.INFSTR.SPCNDS","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*JA----H****","DESCRIPTION":"Adult Day Care","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.10.1","ALPHAHIERARCHY":"EMS.INFSTR.SPCNDS.ADLTDC","PATH":"Emergency Management Symbols/Infrastructure/Special Needs Infrastructure"},{"SYMBOLID":"E*F*JB----H****","DESCRIPTION":"Child Day Care","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.10.2","ALPHAHIERARCHY":"EMS.INFSTR.SPCNDS.CHLDC","PATH":"Emergency Management Symbols/Infrastructure/Special Needs Infrastructure"},{"SYMBOLID":"E*F*JC----H****","DESCRIPTION":"Elder Care","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.10.3","ALPHAHIERARCHY":"EMS.INFSTR.SPCNDS.ELDERC","PATH":"Emergency Management Symbols/Infrastructure/Special Needs Infrastructure"},{"SYMBOLID":"E*F*K-----H****","DESCRIPTION":"Telecommunications Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.11","ALPHAHIERARCHY":"EMS.INFSTR.TELCOM","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"S*G*IUT---H****","DESCRIPTION":"Telecommunications Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.11.1","ALPHAHIERARCHY":"EMS.INFSTR.TELCOM.TCF","PATH":"Emergency Management Symbols/Infrastructure/Telecommunications Infrastructure"},{"SYMBOLID":"E*F*KB----H****","DESCRIPTION":"Telecommunications Tower","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.11.2","ALPHAHIERARCHY":"EMS.INFSTR.TELCOM.TCTWR","PATH":"Emergency Management Symbols/Infrastructure/Telecommunications Infrastructure"},{"SYMBOLID":"S*G*IT----H****","DESCRIPTION":"Transportation Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12","ALPHAHIERARCHY":"EMS.INFSTR.TSP","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*LA----H****","DESCRIPTION":"Air Traffic Control Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.1","ALPHAHIERARCHY":"EMS.INFSTR.TSP.ATCF","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"S*G*IBA---H****","DESCRIPTION":"Airport","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.2","ALPHAHIERARCHY":"EMS.INFSTR.TSP.AIRPT","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"G*M*BCB---****X","DESCRIPTION":"Bridge","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.3","ALPHAHIERARCHY":"EMS.INFSTR.TSP.BRG","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LD----H****","DESCRIPTION":"Bus Station","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.4","ALPHAHIERARCHY":"EMS.INFSTR.TSP.BSTN","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LE----H****","DESCRIPTION":"Ferry Terminal","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.5","ALPHAHIERARCHY":"EMS.INFSTR.TSP.FRYTRM","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LF----H****","DESCRIPTION":"Helicopter Landing Site","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.6","ALPHAHIERARCHY":"EMS.INFSTR.TSP.HLS","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"WOS-ML----P----","DESCRIPTION":"Lock","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.7","ALPHAHIERARCHY":"EMS.INFSTR.TSP.LCK","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LH----H****","DESCRIPTION":"Maintenance Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.8","ALPHAHIERARCHY":"EMS.INFSTR.TSP.MAINTF","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"S*G*IBN---H****","DESCRIPTION":"Port","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.9","ALPHAHIERARCHY":"EMS.INFSTR.TSP.SP","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LJ----H****","DESCRIPTION":"Rail Station","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.10","ALPHAHIERARCHY":"EMS.INFSTR.TSP.RLSTN","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LK----H****","DESCRIPTION":"Rest Stop","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.11","ALPHAHIERARCHY":"EMS.INFSTR.TSP.RSTSTP","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"WOS-HPBA--P----","DESCRIPTION":"Ship Anchorage","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.12","ALPHAHIERARCHY":"EMS.INFSTR.TSP.ANCRG","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LM----H****","DESCRIPTION":"Toll Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.13","ALPHAHIERARCHY":"EMS.INFSTR.TSP.TOLLF","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"G*S*PO----****X","DESCRIPTION":"Traffic Control Point","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.14","ALPHAHIERARCHY":"EMS.INFSTR.TSP.TCP","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LO----H****","DESCRIPTION":"Traffic Inspection Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.15","ALPHAHIERARCHY":"EMS.INFSTR.TSP.TIF","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"E*F*LP----H****","DESCRIPTION":"Tunnel","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.12.16","ALPHAHIERARCHY":"EMS.INFSTR.TSP.TML","PATH":"Emergency Management Symbols/Infrastructure/Transportation Infrastructure"},{"SYMBOLID":"S*G*IUP---H****","DESCRIPTION":"Water Supply Infrastructure","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13","ALPHAHIERARCHY":"EMS.INFSTR.WS","PATH":"Emergency Management Symbols/Infrastructure"},{"SYMBOLID":"E*F*MA----H****","DESCRIPTION":"Control Valve","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.1","ALPHAHIERARCHY":"EMS.INFSTR.WS.CV","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MB----H****","DESCRIPTION":"Dam","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.2","ALPHAHIERARCHY":"EMS.INFSTR.WS.DAM","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MC----H****","DESCRIPTION":"Discharge Outfall","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.3","ALPHAHIERARCHY":"EMS.INFSTR.WS.DO","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MD----H****","DESCRIPTION":"Ground Water Well","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.4","ALPHAHIERARCHY":"EMS.INFSTR.WS.GWWELL","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*ME----H****","DESCRIPTION":"Pumping Station","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.5","ALPHAHIERARCHY":"EMS.INFSTR.WS.PMPSTN","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MF----H****","DESCRIPTION":"Reservoir","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.6","ALPHAHIERARCHY":"EMS.INFSTR.WS.RSVR","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MG----H****","DESCRIPTION":"Storage Tower","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.7","ALPHAHIERARCHY":"EMS.INFSTR.WS.STRTWR","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MH----H****","DESCRIPTION":"Surface Water Intake","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.8","ALPHAHIERARCHY":"EMS.INFSTR.WS.SWI","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"},{"SYMBOLID":"E*F*MI----H****","DESCRIPTION":"Wastewater Treatment Facility","DRAWCATEGORY":"8","HIERARCHY":"6.X.4.13.9","ALPHAHIERARCHY":"EMS.INFSTR.WS.WH20TF","PATH":"Emergency Management Symbols/Infrastructure/Water Supply Infrastructure"}]}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.ShapeTypes={};armyc2.c2sd.renderer.so.ShapeTypes.RECTANGLE="RECTANGLE";armyc2.c2sd.renderer.so.ShapeTypes.POINT="POINT";armyc2.c2sd.renderer.so.ShapeTypes.ELLIPSE="ELLIPSE";armyc2.c2sd.renderer.so.ShapeTypes.ROUNDED_RECTANGLE="ROUNDED_RECTANGLE";armyc2.c2sd.renderer.so.ShapeTypes.LINE="LINE";armyc2.c2sd.renderer.so.ShapeTypes.BCURVE="BCURVE";armyc2.c2sd.renderer.so.ShapeTypes.ARC="ARC";armyc2.c2sd.renderer.so.ShapeTypes.PATH="PATH";armyc2.c2sd.renderer.so.ActionTypes={};armyc2.c2sd.renderer.so.ActionTypes.ACTION_MOVE_TO=0;armyc2.c2sd.renderer.so.ActionTypes.ACTION_LINE_TO=1;armyc2.c2sd.renderer.so.ActionTypes.ACTION_CURVE_TO=2;armyc2.c2sd.renderer.so.ActionTypes.ACTION_QUAD_TO=3;armyc2.c2sd.renderer.so.ActionTypes.ACTION_ARC_TO=4;armyc2.c2sd.renderer.so.ActionTypes.ACTION_ARC=5;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.utilities=armyc2.c2sd.renderer.so.utilities||{};armyc2.c2sd.renderer.so.utilities.relativeCCW=function(x1,y1,x2,y2,px,py)
- {x2-=x1;y2-=y1;px-=x1;py-=y1;var ccw=px*y2-py*x2;if(ccw===0.0){ccw=px*x2+py*y2;if(ccw>0.0){px-=x2;py-=y2;ccw=px*x2+py*y2;if(ccw<0.0){ccw=0.0;}}}
- return(ccw<0.0)?-1:((ccw>0.0)?1:0);};armyc2.c2sd.renderer.so.utilities.linesIntersect=function(x1,y1,x2,y2,x3,y3,x4,y4)
- {var rCCW1=this.relativeCCW(x1,y1,x2,y2,x3,y3),rCCW2=this.relativeCCW(x1,y1,x2,y2,x4,y4),rCCW3=this.relativeCCW(x3,y3,x4,y4,x1,y1),rCCW4=this.relativeCCW(x3,y3,x4,y4,x2,y2);return(((rCCW1*rCCW2)<=0)&&((rCCW3*rCCW4)<=0));};armyc2.c2sd.renderer.so.utilities.intersectRects=function(src1,src2)
- {var x1=Math.max(src1.getMinX(),src2.getMinX()),y1=Math.max(src1.getMinY(),src2.getMinY()),x2=Math.min(src1.getMaxX(),src2.getMaxX()),y2=Math.min(src1.getMaxY(),src2.getMaxY());return new armyc2.c2sd.renderer.so.Rectangle(x1,y1,x2-x1,y2-y1);};armyc2.c2sd.renderer.so.utilities.unionRects=function(src1,src2)
- {var x1=Math.min(src1.getMinX(),src2.getMinX()),y1=Math.min(src1.getMinY(),src2.getMinY()),x2=Math.max(src1.getMaxX(),src2.getMaxX()),y2=Math.max(src1.getMaxY(),src2.getMaxY());return new armyc2.c2sd.renderer.so.Rectangle(x1,y1,x2,y2);};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Point=function(x,y){this.x=x,this.y=y;};armyc2.c2sd.renderer.so.Point.prototype.getShapeType=function(){return"POINT";};armyc2.c2sd.renderer.so.Point.prototype.getX=function(){return this.x;};armyc2.c2sd.renderer.so.Point.prototype.getY=function(){return this.y;};armyc2.c2sd.renderer.so.Point.prototype.setLocation=function(x,y){this.x=x;this.y=y;};armyc2.c2sd.renderer.so.Point.prototype.shift=function(x,y){this.x+=x;this.y+=y;};armyc2.c2sd.renderer.so.Point.prototype.toStringFormatted=function(){return"{x:"+this.x+", y:"+this.y+"}";};armyc2.c2sd.renderer.so.Point.prototype.clone=function(){return new armyc2.c2sd.renderer.so.Point(this.x,this.y);};armyc2.c2sd.renderer.so.Point.prototype.setPath=function(context){var x=this.x,y=this.y;context.moveTo(x,y);context.lineTo(x+1,y);context.lineTo(x+1,y+1);context.lineTo(x,y+1);context.closePath();};armyc2.c2sd.renderer.so.Point.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.Point.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Rect={};armyc2.c2sd.renderer.so.Rectangle=function(x,y,width,height){this.x=x,this.y=y,this.width=width,this.height=height,this.bottom=y+height,this.right=x+width;};armyc2.c2sd.renderer.so.Rectangle.prototype.getShapeType=function(){return"RECTANGLE";};armyc2.c2sd.renderer.so.Rectangle.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.x-1,this.y-1,this.width+2,this.height+2);};armyc2.c2sd.renderer.so.Rectangle.prototype.getX=function(){return this.x;};armyc2.c2sd.renderer.so.Rectangle.prototype.getY=function(){return this.y;};armyc2.c2sd.renderer.so.Rectangle.prototype.getWidth=function(){return this.width;};armyc2.c2sd.renderer.so.Rectangle.prototype.getHeight=function(){return this.height;};armyc2.c2sd.renderer.so.Rectangle.prototype.getBottom=function(){return this.bottom;};armyc2.c2sd.renderer.so.Rectangle.prototype.getRight=function(){return this.right;};armyc2.c2sd.renderer.so.Rectangle.prototype.getCenterX=function(){return this.x+(this.width/2);};armyc2.c2sd.renderer.so.Rectangle.prototype.getCenterY=function(){return this.y+(this.height/2);};armyc2.c2sd.renderer.so.Rectangle.prototype.setLocation=function(x,y){this.x=x;this.y=y;this.bottom=y+this.height;this.right=x+this.width;};armyc2.c2sd.renderer.so.Rectangle.prototype.isEmpty=function()
- {return(this.width<=0.0)||(this.height<=0.0);};armyc2.c2sd.renderer.so.Rectangle.prototype.shift=function(x,y){this.x+=x;this.y+=y;this.right+=x;this.bottom+=y;};armyc2.c2sd.renderer.so.Rectangle.prototype.shiftTL=function(x,y){this.x+=x;this.y+=y;this.height=this.bottom-this.y;this.width=this.right-this.x;};armyc2.c2sd.renderer.so.Rectangle.prototype.shiftBR=function(x,y){this.right+=x;this.bottom+=y;this.height=this.bottom-this.y;this.width=this.right-this.x;};armyc2.c2sd.renderer.so.Rectangle.prototype.grow=function(pixel){this.shiftTL(-pixel,-pixel);this.shiftBR(pixel,pixel);};armyc2.c2sd.renderer.so.Rectangle.prototype.union=function(rect){if(rect)
- {if(rect.y<this.y)
- this.y=rect.y;if(rect.x<this.x)
- this.x=rect.x;if(rect.bottom>this.bottom)
- this.bottom=rect.bottom;if(rect.right>this.right)
- this.right=rect.right;this.width=this.right-this.x;this.height=this.bottom-this.y;}};armyc2.c2sd.renderer.so.Rectangle.prototype.unionPoint=function(point){if(point)
- {if(point.y<this.y)
- this.y=point.y;if(point.x<this.x)
- this.x=point.x;if(point.y>this.bottom)
- this.bottom=point.y;if(point.x>this.right)
- this.right=point.x;this.width=this.right-this.x;this.height=this.bottom-this.y;}};armyc2.c2sd.renderer.so.Rectangle.prototype.contains=function(x,y,w,h)
- {if(x&&y&&w&&h)
- {if(isEmpty()||w<=0||h<=0){return false;}
- var x0=this.getX(),y0=this.getY();return(x>=x0&&y>=y0&&(x+w)<=x0+this.getWidth()&&(y+h)<=y0+this.getHeight());}
- else if(x&&y)
- {var x0=this.getX(),y0=this.getY();return(x>=x0&&y>=y0&&x<x0+this.getWidth()&&y<y0+this.getHeight());}
- else
- return false;};armyc2.c2sd.renderer.so.Rectangle.prototype.outcode=function(x,y){var out=0;if(this.width<=0){out|=this.OUT_LEFT|this.OUT_RIGHT;}else if(x<this.x){out|=this.OUT_LEFT;}else if(x>this.x+this.width){out|=this.OUT_RIGHT;}
- if(this.height<=0){out|=this.OUT_TOP|this.OUT_BOTTOM;}else if(y<this.y){out|=this.OUT_TOP;}else if(y>this.y+this.height){out|=this.OUT_BOTTOM;}
- return out;};armyc2.c2sd.renderer.so.Rectangle.prototype.intersectsLine=function(x1,y1,x2,y2)
- {var out1,out2;if((out2=outcode(x2,y2))===0){return true;}
- while((out1=outcode(x1,y1))!==0){if((out1&out2)!==0){return false;}
- if((out1&(this.OUT_LEFT|this.OUT_RIGHT))!==0){var x=this.getX();if((out1&this.OUT_RIGHT)!==0){x+=getWidth();}
- y1=y1+(x-x1)*(y2-y1)/(x2-x1);x1=x;}else{var y=this.getY();if((out1&this.OUT_BOTTOM)!==0){y+=getHeight();}
- x1=x1+(y-y1)*(x2-x1)/(y2-y1);y1=y;}}
- return true;};armyc2.c2sd.renderer.so.Rectangle.prototype.setPath=function(context){var x=this.getX(),y=this.getY(),w=this.getWidth(),h=this.getHeight();context.moveTo(x,y);context.lineTo(x+w,y);context.lineTo(x+w,y+h);context.lineTo(x,y+h);context.closePath();};armyc2.c2sd.renderer.so.Rectangle.prototype.stroke=function(context){context.strokeRect(this.getX(),this.getY(),this.getWidth(),this.getHeight());};armyc2.c2sd.renderer.so.Rectangle.prototype.fill=function(context){context.fillRect(this.getX(),this.getY(),this.getWidth(),this.getHeight());};armyc2.c2sd.renderer.so.Rectangle.prototype.clone=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.x,this.y,this.width,this.height);};armyc2.c2sd.renderer.so.Rectangle.prototype.intersects=function(r){var tw=this.width;var th=this.height;var rw=r.width;var rh=r.height;if(rw<=0||rh<=0||tw<=0||th<=0){return false;}
- var tx=this.x;var ty=this.y;var rx=r.x;var ry=r.y;rw+=rx;rh+=ry;tw+=tx;th+=ty;return((rw<rx||rw>tx)&&(rh<ry||rh>ty)&&(tw<tx||tw>rx)&&(th<ty||th>ry));};armyc2.c2sd.renderer.so.Rectangle.prototype.OUT_LEFT=1;armyc2.c2sd.renderer.so.Rectangle.prototype.OUT_TOP=2;armyc2.c2sd.renderer.so.Rectangle.prototype.OUT_RIGHT=4;armyc2.c2sd.renderer.so.Rectangle.prototype.OUT_BOTTOM=8;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.RoundedRectangle=function(x,y,w,h,radius){this.radius=radius;this.rectangle=new armyc2.c2sd.renderer.so.Rectangle(x,y,w,h);};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.getShapeType=function(){return"ROUNDED_RECTANGLE";};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.rectangle.getX()-1,this.rectangle.getY()-1,this.rectangle.getWidth()+2,this.rectangle.getHeight()+2);};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.shift=function(x,y){this.rectangle.shift(x,y);};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.setPath=function(context){var x=this.rectangle.getX(),y=this.rectangle.getY(),w=this.rectangle.getWidth(),h=this.rectangle.getHeight();if(w<(2*this.radius))
- this.radius=w/2;if(h<(2*this.radius))
- this.radius=h/2;var r=this.radius;context.moveTo(x+r,y);context.lineTo(x+w-r,y);context.arcTo(x+w,y,x+w,y+r,r);context.lineTo(x+w,y+h-r);context.arcTo(x+w,y+h,x+w-r,y+h,r);context.lineTo(x+r,y+h);context.arcTo(x,y+h,x,y+h-r,r);context.lineTo(x,y+r);context.arcTo(x,y,x+r,y,r);};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.RoundedRectangle.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Ellipse=function(x,y,w,h){this.rectangle=new armyc2.c2sd.renderer.so.Rectangle(x,y,w,h);};armyc2.c2sd.renderer.so.Ellipse.prototype.getShapeType=function(){return"ELLIPSE";};armyc2.c2sd.renderer.so.Ellipse.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.rectangle.getX()-1,this.rectangle.getY()-1,this.rectangle.getWidth()+2,this.rectangle.getHeight()+2);};armyc2.c2sd.renderer.so.Ellipse.prototype.shift=function(x,y){this.rectangle.shift(x,y);};armyc2.c2sd.renderer.so.Ellipse.prototype.setPath=function(context){var x=this.rectangle.getX(),y=this.rectangle.getY(),w=this.rectangle.getWidth(),h=this.rectangle.getHeight();var kappa=0.5522848,ox=(w/2)*kappa,oy=(h/2)*kappa,xe=x+w,ye=y+h,xm=x+w/2,ym=y+h/2;context.moveTo(x,ym);context.bezierCurveTo(x,ym-oy,xm-ox,y,xm,y);context.bezierCurveTo(xm+ox,y,xe,ym-oy,xe,ym);context.bezierCurveTo(xe,ym+oy,xm+ox,ye,xm,ye);context.bezierCurveTo(xm-ox,ye,x,ym+oy,x,ym);context.closePath();};armyc2.c2sd.renderer.so.Ellipse.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.Ellipse.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Arc=function(x,y,r,sa,ea){this.x=x,this.y=y,this.r=r,this.sa=sa*(Math.PI/180),this.ea=ea*(Math.PI/180);this.rectangle=new armyc2.c2sd.renderer.so.Rectangle(x-r,y-r,r*2,r*2);};armyc2.c2sd.renderer.so.Arc.prototype.getShapeType=function(){return"ARC";};armyc2.c2sd.renderer.so.Arc.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.rectangle.getX(),this.rectangle.getY(),this.rectangle.getWidth(),this.rectangle.getHeight());};armyc2.c2sd.renderer.so.Arc.prototype.shift=function(x,y){this.x+=x;this.y+=y;this.rectangle.shift(x,y);};armyc2.c2sd.renderer.so.Arc.prototype.setPath=function(context){context.arc(this.x,this.y,this.r,this.sa,this.ea,false);};armyc2.c2sd.renderer.so.Arc.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.Arc.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.BCurve=function(x1,y1,x2,y2,x3,y3,x4,y4){var so=armyc2.c2sd.renderer.so;this.x1=x1,this.y1=y1,this.x2=x2,this.y2=y2,this.x3=x3,this.y3=y3,this.x4=x4,this.y4=y4;this.rectangle=new so.Rectangle(x1,y1,1,1);this.rectangle.unionPoint(new so.Point(x2,y2));this.rectangle.unionPoint(new so.Point(x3,y3));this.rectangle.unionPoint(new so.Point(x4,y4));};armyc2.c2sd.renderer.so.BCurve.prototype.getShapeType=function(){return"BCURVE";};armyc2.c2sd.renderer.so.BCurve.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.rectangle.getX()-1,this.rectangle.getY()-1,this.rectangle.getWidth()+2,this.rectangle.getHeight()+2);};armyc2.c2sd.renderer.so.BCurve.prototype.shift=function(x,y){this.x1+=x;this.y1+=y;this.x2+=x;this.y2+=y;this.x3+=x;this.y3+=y;this.x4+=x;this.y4+=y;this.rectangle.shift(x,y);};armyc2.c2sd.renderer.so.BCurve.prototype.setPath=function(context){context.moveTo(this.x1,this.y1);context.bezierCurveTo(this.x2,this.y2,this.x3,this.y3,this.x4,this.y4);};armyc2.c2sd.renderer.so.BCurve.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.BCurve.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Line=function(x1,y1,x2,y2){var so=armyc2.c2sd.renderer.so;this.pt1=new so.Point(x1,y1);this.pt2=new so.Point(x2,y2);this.rectangle=new so.Rectangle(x1,y1,1,1);this.rectangle.unionPoint(new so.Point(x2,y2));};armyc2.c2sd.renderer.so.Line.prototype.getShapeType=function(){return"LINE";};armyc2.c2sd.renderer.so.Line.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this.rectangle.getX(),this.rectangle.getY(),this.rectangle.getWidth(),this.rectangle.getHeight());};armyc2.c2sd.renderer.so.Line.prototype.getP1=function()
- {return this.pt1;};armyc2.c2sd.renderer.so.Line.prototype.getP2=function()
- {return this.pt2;};armyc2.c2sd.renderer.so.Line.prototype.shift=function(x,y){this.rectangle.shift(x,y);this.pt1.shift(x,y);this.pt2.shift(x,y);};armyc2.c2sd.renderer.so.Line.prototype.intersectsLine=function(line)
- {return armyc2.c2sd.renderer.so.utilities.linesIntersect(this.getP1().getX(),this.getP1().getY(),this.getP2().getX(),this.getP2().getY(),line.getP1().getX(),line.getP1().getY(),line.getP2().getX(),line.getP2().getY());};armyc2.c2sd.renderer.so.Line.prototype.setPath=function(context){context.moveTo(this.pt1.getX(),this.pt1.getY());context.lineTo(this.pt2.getX(),this.pt2.getY());};armyc2.c2sd.renderer.so.Line.prototype.stroke=function(context){context.beginPath();context.moveTo(this.pt1.getX(),this.pt1.getY());context.lineTo(this.pt2.getX(),this.pt2.getY());context.stroke();};armyc2.c2sd.renderer.so.Line.prototype.fill=function(context){context.beginPath();context.moveTo(this.pt1.getX(),this.pt1.getY());context.lineTo(this.pt2.getX(),this.pt2.getY());context.fill();};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.so=armyc2.c2sd.renderer.so||{};armyc2.c2sd.renderer.so.Path=function(){this._actions=[],this._startPoint=null,this._endPoint=null,this._lastMoveTo=null,this._rectangle=null;};armyc2.c2sd.renderer.so.Path.prototype.getShapeType=function(){return armyc2.c2sd.renderer.so.ShapeTypes.PATH;};armyc2.c2sd.renderer.so.Path.prototype.getBounds=function(){return new armyc2.c2sd.renderer.so.Rectangle(this._rectangle.getX(),this._rectangle.getY(),this._rectangle.getWidth(),this._rectangle.getHeight());};armyc2.c2sd.renderer.so.Path.prototype.shift=function(x,y){var size=this._actions.length;var temp=null;this._rectangle.shift(x,y);for(var i=0;i<size;i++)
- {temp=this._actions[i];if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_MOVE_TO)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;}
- else if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_LINE_TO)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;}
- else if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_CURVE_TO)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;temp[3]=temp[3]+x;temp[4]=temp[4]+y;temp[5]=temp[5]+x;temp[6]=temp[6]+y;}
- else if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_QUAD_TO)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;temp[3]=temp[3]+x;temp[4]=temp[4]+y;}
- else if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_ARC_TO)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;temp[3]=temp[3]+x;temp[4]=temp[4]+y;}
- else if(temp[0]===armyc2.c2sd.renderer.so.ActionTypes.ACTION_ARC)
- {temp[1]=temp[1]+x;temp[2]=temp[2]+y;}}
- this._startPoint.shift(x,y);this._endPoint.shift(x,y);this._lastMoveTo.shift(x,y);};armyc2.c2sd.renderer.so.Path.prototype.getLength=function(){this._actions.length;};armyc2.c2sd.renderer.so.Path.prototype.moveTo=function(x,y){var so=armyc2.c2sd.renderer.so;if(this._actions.length===0)
- {this._rectangle=new so.Rectangle(x,y,1,1);this._startPoint=new so.Point(x,y);this._endPoint=new so.Point(x,y);}
- this._rectangle.unionPoint(new so.Point(x,y));this._actions.push(new Array(so.ActionTypes.ACTION_MOVE_TO,x,y));this._lastMoveTo=new so.Point(x,y);};armyc2.c2sd.renderer.so.Path.prototype.lineTo=function(x,y){var so=armyc2.c2sd.renderer.so;if(this._actions.length===0)
- {this.moveTo(0,0);}
- this._actions.push(new Array(so.ActionTypes.ACTION_LINE_TO,x,y));this._rectangle.unionPoint(new so.Point(x,y));this._endPoint=new so.Point(x,y);};armyc2.c2sd.renderer.so.Path.prototype.bezierCurveTo=function(cp1x,cp1y,cp2x,cp2y,x,y){var so=armyc2.c2sd.renderer.so;if(this._actions.length===0)
- {this.moveTo(0,0);}
- this._actions.push(new Array(so.ActionTypes.ACTION_CURVE_TO,cp1x,cp1y,cp2x,cp2y,x,y));this._rectangle.unionPoint(new so.Point(cp1x,cp1y));this._rectangle.unionPoint(new so.Point(cp2x,cp2y));this._rectangle.unionPoint(new so.Point(x,y));this._endPoint=new so.Point(x,y);};armyc2.c2sd.renderer.so.Path.prototype.quadraticCurveTo=function(cpx,cpy,x,y){var so=armyc2.c2sd.renderer.so;if(this._actions.length===0)
- {this.moveTo(0,0);}
- this._actions.push(new Array(so.ActionTypes.ACTION_QUAD_TO,cpx,cpy,x,y));this._rectangle.unionPoint(new so.Point(cpx,cpy));this._rectangle.unionPoint(new so.Point(x,y));this._endPoint=new so.Point(x,y);};armyc2.c2sd.renderer.so.Path.prototype.arcTo=function(x1,y1,x2,y2,r){var so=armyc2.c2sd.renderer.so;if(this._actions.length===0)
- {this.moveTo(0,0);}
- this._actions.push(new Array(so.ActionTypes.ACTION_ARC_TO,x1,y1,x2,y2));this._rectangle.unionPoint(new so.Point(x1,y1));this._rectangle.unionPoint(new so.Point(x2,y2));this._endPoint=new so.Point(x2,y2);};armyc2.c2sd.renderer.so.Path.prototype.arc=function(x,y,r,sAngle,eAngle,counterclockwise){var so=armyc2.c2sd.renderer.so;if(counterclockwise!==true)
- {counterclockwise=false;}
- var sa=sAngle*(Math.PI/180),ea=eAngle*(Math.PI/180);if(this._startPoint===null)
- {var sX=r*Math.cos(sa)+x;var sY=r*Math.sin(sa)+y;this._startPoint=new so.Point(sX,sY);this._rectangle=new so.Rectangle(sX,sY,1,1);}
- this._actions.push(new Array(so.ActionTypes.ACTION_ARC,x,y,r,sa,ea,counterclockwise));this._rectangle.union(new so.Rectangle(x-r,y-r,r*2,r*2));var newX=r*Math.cos(ea)+x;var newY=r*Math.sin(ea)+y;this._endPoint=new so.Point(newX,newY);};armyc2.c2sd.renderer.so.Path.prototype.closePath=function(){this.lineTo(this._lastMoveTo.getX(),this._lastMoveTo.getY());this._endPoint=this._lastMoveTo.clone();};armyc2.c2sd.renderer.so.Path.prototype.getCurrentPoint=function()
- {return this._endPoint.clone();};armyc2.c2sd.renderer.so.Path.prototype.getPathIterator=function()
- {return new armyc2.c2sd.renderer.so.PathIterator(this._actions);};armyc2.c2sd.renderer.so.Path.prototype.setPath=function(context){var ActionTypes=armyc2.c2sd.renderer.so.ActionTypes;var size=this._actions.length;var temp=null;for(var i=0;i<size;i++)
- {temp=this._actions[i];if(temp[0]===ActionTypes.ACTION_MOVE_TO)
- {context.moveTo(temp[1],temp[2]);}
- else if(temp[0]===ActionTypes.ACTION_LINE_TO)
- {context.lineTo(temp[1],temp[2]);}
- else if(temp[0]===ActionTypes.ACTION_CURVE_TO)
- {context.bezierCurveTo(temp[1],temp[2],temp[3],temp[4],temp[5],temp[6]);}
- else if(temp[0]===ActionTypes.ACTION_QUAD_TO)
- {context.quadraticCurveTo(temp[1],temp[2],temp[3],temp[4]);}
- else if(temp[0]===ActionTypes.ACTION_ARC_TO)
- {context.arcTo(temp[1],temp[2],temp[3],temp[4],temp[5]);}
- else if(temp[0]===ActionTypes.ACTION_ARC)
- {context.arc(temp[1],temp[2],temp[3],temp[4],temp[5],temp[6]);}}};armyc2.c2sd.renderer.so.Path.prototype.stroke=function(context){context.beginPath();this.setPath(context);context.stroke();};armyc2.c2sd.renderer.so.Path.prototype.fill=function(context){context.beginPath();this.setPath(context);context.fill();};var Clazz={newArray:function(){var args=arguments;if(arguments.length===1){if(arguments[0]instanceof Array){args=arguments[0];}}
- if(args.length<=1){return new Array();}else if(args.length===2){var dim=args[0];if(typeof dim==="string"){dim=dim.charCodeAt(0);}
- var val=args[1];var arr=new Array(dim);for(var i=0;i<dim;i++){arr[i]=val;}
- return arr;}else{dim=args[0];if(typeof dim==="string"){dim=dim.charCodeAt(0);}
- var len=args.length-1;var xargs=new Array(len);for(i=0;i<len;i++){xargs[i]=args[i+1];}
- arr=new Array(dim);for(i=0;i<dim;i++){arr[i]=Clazz.newArray(xargs);}
- return arr;}},instanceOf:function(obj)
- {if(arguments.length===2)
- {var obj1=arguments[0];var obj2=arguments[1];return obj1 instanceof obj2;}
- if(obj!==null&&obj!==undefined)
- return true;else
- return false;},instantialize:function()
- {return;}};Double=function(){this.value=new Number(0);if(arguments.length===1)
- {var t=arguments[0];this.value=new Number(t);}
- this.valueOf=function()
- {return this.value;};this.doubleValue=function()
- {return this.value;};};Double.isNaN=function(t)
- {return isNaN(t);};Double.parseDouble=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);return n;}
- return null;};Double.isInfinite=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);var b=!isFinite(n);return b;}
- else
- return true;};Double.toString=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);var s=n.toString();return s;}
- else
- return null;};Double.serialVersionUID=Double.prototype.serialVersionUID=-9172774392245257468;Double.MIN_VALUE=Double.prototype.MIN_VALUE=4.9e-324;Double.MAX_VALUE=Double.prototype.MAX_VALUE=1.7976931348623157e+308;Double.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;Double.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;Double.NaN=Number.NaN;Double.TYPE=Double.prototype.TYPE=Double;Integer=function()
- {this.value=new Number(0);if(arguments.length===1)
- {var t=arguments[0];this.value=new Number(t);return this.value;}
- this.intValue=function()
- {return this.value;};};Integer.parseInt=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);return n;}
- return null;};Integer.toHexString=function(i){return i.toString(16);};Integer.isInfinite=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);var b=!isFinite(n);return b;}
- else
- return true;};Integer.toString=function()
- {if(arguments.length===1)
- {var t=arguments[0];var n=new Number(t);var s=n.toString();return s;}
- else
- return null;};Integer.serialVersionUID=Integer.prototype.serialVersionUID=1360826667806852920;Integer.MIN_VALUE=Integer.prototype.MIN_VALUE=-0x80000000;Integer.MAX_VALUE=Integer.prototype.MAX_VALUE=0x7fffffff;Integer.TYPE=Integer.prototype.TYPE=Integer;System=function()
- {};System.arraycopy=function(src,srcPos,dest,destPos,length){var j=0;for(j=0;j<length;j++)
- dest[j+destPos]=src[srcPos+j];};var android=android||{};android.graphics=android.graphics||{};android.graphics.Bitmap=function()
- {return;};var android=android||{};android.graphics=android.graphics||{};android.graphics.Paint=function()
- {this.getTextBounds=function(str,x,length,rect){return null;};this.setTextSize=function(size){return;};this.setAntiAlias=function(b){return;};this.setColor=function(color){return;};this.setTypeface=function(tf){return;};};var android=android||{};android.graphics=android.graphics||{};android.graphics.Path=function(){this.pts=new java.util.ArrayList();};android.graphics.Path.prototype.lineTo=function(x,y){if(this.pts.size()>0)
- {var lastPt=this.pts.get(this.pts.size()-1);if(lastPt.x===x&&lastPt.y===y)
- return;}
- this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x,y));};android.graphics.Path.prototype.moveTo=function(x,y){if(this.pts.size()>0)
- {var lastPt=this.pts.get(this.pts.size()-1);if(lastPt.x===x&&lastPt.y===y)
- return;}
- this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x,y));};android.graphics.Path.prototype.curveTo=function(x1,y1,x2,y2,x3,y3){this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1));this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2));this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x3,y3));};android.graphics.Path.prototype.cubicTo=function(x1,y1,x2,y2,x3,y3){this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1));this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2));this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x3,y3));};android.graphics.Path.prototype.quadTo=function(x1,y1,x2,y2){this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1));this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2));};android.graphics.Path.prototype.addPath=function(path){this.pts.addAll(path.getPts());return;};android.graphics.Path.prototype.computeBounds=function(rect,exact){var j=0;var left=this.pts.get(0).x;var right=this.pts.get(0).x;var top=this.pts.get(0).y;var bottom=this.pts.get(0).y;var pt=null;for(j=1;j<this.pts.size();j++){pt=this.pts.get(j);if(pt.x<left)
- left=pt.x;if(pt.x>right)
- right=pt.x;if(pt.y<top)
- top=pt.y;if(pt.y>bottom)
- bottom=pt.y;}
- rect.left=left;rect.top=top;rect.right=right;rect.bottom=bottom;return;};android.graphics.Path.prototype.close=function(){};android.graphics.Path.prototype.getPts=function(){return pts;};var android=android||{};android.graphics=android.graphics||{};android.graphics.PointF=function()
- {this.x=0;this.y=0;if(arguments.length===2)
- {this.x=arguments[0];this.y=arguments[1];}};var android=android||{};android.graphics=android.graphics||{};android.graphics.Rect=function()
- {this.left=0;this.top=0;this.width=function(){return 0;};this.height=function(){return 0;};};var android=android||{};android.graphics=android.graphics||{};android.graphics.RectF=function(){this.top=0;this.left=0;this.bottom=0;this.right=0;if(arguments.length===4)
- {this.left=arguments[0];this.top=arguments[1];this.right=arguments[2];this.bottom=arguments[3];}
- this.intersects=function(a,b){if(a.contains(b.left,b.top))
- return true;else if(a.contains(b.left,b.bottom))
- return true;else if(a.contains(b.right,b.top))
- return true;else if(a.contains(b.right,b.bottom))
- return true;return false;};this.width=function(){return this.right-this.left;};this.height=function(){return this.bottom-this.top;};this.contains=function(x,y){if(this.left<x&&x<this.right)
- if(this.top<y&&y<this.bottom)
- return true;return false;};};var android=android||{};android.graphics=android.graphics||{};android.graphics.Typeface=function(){this.create=function(str,t){return null;};};android.graphics.Typeface.BOLD=1;String.prototype.equalsIgnoreCase=function(anotherString){return(anotherString===null)?false:(this===anotherString||this.toLowerCase()===anotherString.toLowerCase());};String.prototype.equals=function(anObject){return this.valueOf()===anObject;};String.prototype.startsWith=function(prefix){if(arguments.length===1){return this.startsWith_string_number(arguments[0],0);}else if(arguments.length===2){return this.startsWith_string_number(arguments[0],arguments[1]);}else{return false;}};String.prototype.endsWith=function(suffix){return this.startsWith(suffix,this.length-suffix.length);};String.prototype.toCharArray=function(){var result=new Array(this.length);for(var i=0;i<this.length;i++){result[i]=this.charAt(i);}
- return result;};String.prototype.$lastIndexOf=String.prototype.lastIndexOf;String.prototype.lastIndexOf=function(s,last){if(last!==null&&last+this.length<=0){return-1;}
- if(last!==null){return this.$lastIndexOf(s,last);}else{return this.$lastIndexOf(s);}};String.indexOf=function(source,sourceOffset,sourceCount,target,targetOffset,targetCount,fromIndex){if(fromIndex>=sourceCount){return(targetCount===0?sourceCount:-1);}
- if(fromIndex<0){fromIndex=0;}
- if(targetCount===0){return fromIndex;}
- var first=target[targetOffset];var i=sourceOffset+fromIndex;var max=sourceOffset+(sourceCount-targetCount);startSearchForFirstChar:while(true){while(i<=max&&source[i]!==first){i++;}
- if(i>max){return-1;}
- var j=i+1;var end=j+targetCount-1;var k=targetOffset+1;while(j<end){if(source[j++]!==target[k++]){i++;continue startSearchForFirstChar;}}
- return i-sourceOffset;}};String.prototype.isEmpty=function(){if(this.length===0)
- return true;else
- return false;};String.prototype.contains=function(exp)
- {if(this.match(exp)!==null)
- return true;else
- return false;};Boolean.prototype.booleanValue=function(){return this.valueOf();};String.prototype.startsWith_string_number=function(prefix,toffset){var to=toffset;var po=0;var pc=prefix.length;if((toffset<0)||(toffset>this.length-pc)){return false;}
- while(--pc>=0){if(this.charAt(to++)!==prefix.charAt(po++)){return false;}}
- return true;};String.prototype.startsWith=function(prefix){if(arguments.length===1){return this.startsWith_string_number(arguments[0],0);}else if(arguments.length===2){return this.startsWith_string_number(arguments[0],arguments[1]);}else{return false;}};String.prototype.matches=function(exp){if(exp!==null){exp="^("+exp+")$";}
- var regExp=new RegExp(exp,"gm");var m=this.match(regExp);return m!==null&&m.length!==0;};String.prototype.$plit=function(regex,limit){if(limit!==null&&limit>0){if(limit===1){return this;}
- var regExp=new RegExp("("+regex+")","gm");var count=1;var s=this.replace(regExp,function($0,$1){count++;if(count===limit){return"@@_@@";}else if(count>limit){return $0;}else{return $0;}});regExp=new RegExp(regex,"gm");var arr=this.split(regExp);if(arr.length>limit){arr[limit-1]=s.substring(s.indexOf("@@_@@")+5);arr.length=limit;}
- return arr;}else{var regExp=new RegExp(regex,"gm");return this.split(regExp);}};String.prototype.doubleValue=function()
- {return this.valueOf();};Math.toRadians=function(v)
- {return v*Math.PI/180.0;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.AffineTransform=function(){this.getScaleInstance=function(x,y){return null;};this.transform=function(){return;};this.setToIdentity=function(){return;};this.rotate=function(theta,x,y){return;};this.translate=function(x,y){return;};this.scale=function(x,y){return;};this.createTransformedShape=function(temp){return temp;};};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Area=function()
- {this._path=null;this._pathIterator=null;if(arguments.length===1)
- {var obj=arguments[0];var poly=null;var shape=null;var pt=null;var j=0;if(obj instanceof armyc2.c2sd.graphics2d.Polygon)
- {poly=obj;this._path=new android.graphics.Path();this._pathIterator=new armyc2.c2sd.graphics2d.PathIterator(null);for(j=0;j<poly.size();j++)
- {pt=poly.getPts().get(j);if(j===0)
- {this._path.moveTo(pt.x,pt.y);this._pathIterator.moveTo(pt.x,pt.y);}
- else
- {this._path.lineTo(pt.x,pt.y);this._pathIterator.lineTo(pt.x,pt.y);}}}
- else if(obj instanceof armyc2.c2sd.graphics2d.GeneralPath)
- {shape=obj;this._path=new android.graphics.Path();this._pathIterator=new armyc2.c2sd.graphics2d.PathIterator(null);var p=shape.getPathIterator(null);var pts=p.getPoints();for(j=0;j<pts.size();j++){pt=pts.get(j);switch(pt.style){case 0:this._path.moveTo(pt.x,pt.y);this._pathIterator.moveTo(pt.x,pt.y);break;case 1:this._path.lineTo(pt.x,pt.y);this._pathIterator.lineTo(pt.x,pt.y);break;default:break;}}}}
- this.lineTo=function(x,y){this._path.lineTo(x,y);this._pathIterator.lineTo(x,y);};this.moveTo=function(x,y){this._path.moveTo(x,y);this._pathIterator.moveTo(x,y);};this.getPathIterator=function(at){return this._pathIterator;};};armyc2.c2sd.graphics2d.Area.prototype.containsPt2=function(x,y){return false;};armyc2.c2sd.graphics2d.Area.prototype.containsRect2=function(x,y,width,height){return false;};armyc2.c2sd.graphics2d.Area.prototype.containsPt=function(pt){return false;};armyc2.c2sd.graphics2d.Area.prototype.getBounds2D=function(){return null;};armyc2.c2sd.graphics2d.Area.prototype.getbounds=function(){return null;};armyc2.c2sd.graphics2d.Area.prototype.intersectsRect2=function(x,y,w,h){return false;};armyc2.c2sd.graphics2d.Area.prototype.intersectsRect=function(rect){return false;};armyc2.c2sd.graphics2d.Area.prototype.intersect=function(area){try{var j=0;var polygon=area.getPathIterator(null).getPoints();var hatchLines=this.getPathIterator(null).getPoints();if(polygon.get(0).x!==polygon.get(polygon.size()-1).x||polygon.get(0).y!==polygon.get(polygon.size()-1).y){polygon.add(new armyc2.c2sd.JavaLineArray.POINT2(polygon.get(polygon.size()-1)));}
- var hatchLine=null;var rectHatch=null;var rectPoly=armyc2.c2sd.graphics2d.Area.getMBR(polygon);var pts=new java.util.ArrayList();var ptsTemp=null;for(j=0;j<hatchLines.size()-1;j++){hatchLine=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(hatchLines.get(j).x,hatchLines.get(j).y,hatchLines.get(j+1).x,hatchLines.get(j+1).y);rectHatch=hatchLine.getBounds2D();if(rectHatch.intersectsRect(rectPoly)===false)continue;ptsTemp=armyc2.c2sd.graphics2d.Area.getLineIntersectPoints(polygon,hatchLine);if(ptsTemp!==null)
- pts.addAll(ptsTemp);}
- this.getPathIterator(null).getPoints().clear();for(j=0;j<pts.size();j++){pt=pts.get(j);switch(pt.style){case 0:this.moveTo(pt.x,pt.y);break;case 1:this.lineTo(pt.x,pt.y);break;default:break;}}
- this.getPathIterator(null).reset();return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(this._className,"intersect",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside intersect",exc));}else{throw exc;}}};armyc2.c2sd.graphics2d.Area.reorderPointsByDistance=function(hatchLine,pts){try{var minDistance=0;var dist=0;var j=0;var minIndex=-1;var distances=new java.util.HashMap();var ptsOrdered=new java.util.ArrayList();var origin=hatchLine.getP1();var pt0=new armyc2.c2sd.JavaLineArray.POINT2(origin.getX(),origin.getY());var pt1=null;for(j=0;j<pts.size();j++){pt1=new armyc2.c2sd.JavaLineArray.POINT2(pts.get(j).getX(),pts.get(j).getY());dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);distances.put(new Integer(j),new Double(dist));}
- while(distances.size()>0){for(j=0;j<pts.size();j++){if(distances.containsKey(new Integer(j))){minIndex=j;minDistance=(distances.get(new Integer(j))).doubleValue();break;}}
- for(j=0;j<pts.size();j++){if(distances.containsKey(new Integer(j))){dist=(distances.get(new Integer(j))).doubleValue();if(dist<minDistance){minDistance=dist;minIndex=j;}}}
- ptsOrdered.add(pts.get(minIndex));distances.remove(new Integer(minIndex));}
- pts.clear();for(j=0;j<ptsOrdered.size();j++)
- pts.add(ptsOrdered.get(j));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(this._className,"reorderPointsByDistance",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside reorderPointsByDistance",exc));}else{throw exc;}}
- return;};armyc2.c2sd.graphics2d.Area.getMBR=function(polygon){var j=0;var left=polygon.get(0).x;var top=polygon.get(0).y;var right=polygon.get(0).x;var bottom=polygon.get(0).y;for(j=1;j<polygon.size();j++){if(polygon.get(j).x<left)left=polygon.get(j).x;if(polygon.get(j).x>right)right=polygon.get(j).x;if(polygon.get(j).y<top)top=polygon.get(j).y;if(polygon.get(j).y>bottom)bottom=polygon.get(j).y;}
- return new armyc2.c2sd.graphics2d.Rectangle2D(left,top,right-left,bottom-top);};armyc2.c2sd.graphics2d.Area.isVertical=function(edge){if(edge.getX1()===edge.getX2())return true;else return false;};armyc2.c2sd.graphics2d.Area.adjustVerticalLine=function(line){var linePt0=line.getP1();var linePt1=line.getP2();if(armyc2.c2sd.graphics2d.Area.isVertical(line))
- {var x=line.getX2()+1;var y=line.getY2();linePt1.setLocation(x,y);line.setLine(linePt0,linePt1);}};armyc2.c2sd.graphics2d.Area.getLineIntersectPoints=function(polygon,hatchLine){var pts=null;try{var j=0;var k=0;var segment=null;var pt0=null;var pt1=null;var pt2=null;armyc2.c2sd.graphics2d.Area.adjustVerticalLine(hatchLine);var ptsPath=new java.util.ArrayList();var x=0;var y=0;var m1=0;var m2=0;var b1=0;var b2=0;for(j=0;j<polygon.size()-1;j++)
- {pt0=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(polygon.get(j).x,polygon.get(j).y);pt1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(polygon.get(j+1).x,polygon.get(j+1).y);segment=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0,pt1);armyc2.c2sd.graphics2d.Area.adjustVerticalLine(segment);pt0=segment.getP1();pt1=segment.getP2();m1=(hatchLine.getY1()-hatchLine.getY2())/(hatchLine.getX1()-hatchLine.getX2());m2=(pt0.getY()-pt1.getY())/(pt0.getX()-pt1.getX());if(hatchLine.intersectsLine(segment)){if(m1===m2){ptsPath.add(pt0);ptsPath.add(pt1);}else{b1=hatchLine.getY1()-m1*hatchLine.getX1();b2=segment.getY1()-m2*segment.getX1();x=(b2-b1)/(m1-m2);y=(m1*x+b1);pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x,y);ptsPath.add(pt2);}}}
- armyc2.c2sd.graphics2d.Area.reorderPointsByDistance(hatchLine,ptsPath);var pt=null;pts=new java.util.ArrayList();for(k=0;k<ptsPath.size();k++){pt=ptsPath.get(k);if(k%2===0){pts.add(new armyc2.c2sd.JavaLineArray.POINT2(pt.getX(),pt.getY(),0));}else{pts.add(new armyc2.c2sd.JavaLineArray.POINT2(pt.getX(),pt.getY(),1));}}
- ptsPath.clear();}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(this._className,"getLineIntersectPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getLineIntersectPoints",exc));}else{throw exc;}}
- return pts;};armyc2.c2sd.graphics2d.Area._className="Area";var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.BasicStroke=function(){this.width=0;this.join=0;this.cap=0;this.miterlimit=0;this.dash=null;this.dash_phase=0;if(arguments.length>0)
- this.width=arguments[0];if(arguments.length>1)
- this.cap=arguments[1];if(arguments.length>2)
- this.join=arguments[2];if(arguments.length>3)
- this.miterlimit=arguments[3];if(arguments.length>4)
- {this.dash=arguments[4];}
- if(arguments.length>5)
- this.dash_phase=arguments[5];};armyc2.c2sd.graphics2d.BasicStroke.prototype.createStrokedShape=function()
- {var poly=null;if(arguments.length>0)
- poly=arguments[0];else
- return null;var pts=poly.getPathIterator(null).getPoints();var j=0;var gp=new armyc2.c2sd.graphics2d.GeneralPath();var pt=null;var ptsx=new Array(pts.size());for(j=0;j<pts.size();j++){pt=pts.get(j);ptsx[j]=pt;}
- pts=armyc2.c2sd.graphics2d.BasicStroke.GetInteriorPoints(ptsx,pts.size(),32214000,this.width);for(j=0;j<pts.size();j++){pt=pts.get(j);if(j===0)
- gp.moveTo(pt.x,pt.y);else
- gp.lineTo(pt.x,pt.y);}
- return gp;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getLineWidth=function(){return this.width;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getEndCap=function(){return this.cap;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getLineJoin=function(){return this.join;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getMiterLimit=function(){return this.miterlimit;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getDashArray=function(){return this.dash;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getDashPhase=function(){return this.dash_phase;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getPathIterator=function(at){return null;};armyc2.c2sd.graphics2d.BasicStroke.prototype.containsPt2=function(x,y){return false;};armyc2.c2sd.graphics2d.BasicStroke.prototype.containsRect2=function(x,y,width,height){return false;};armyc2.c2sd.graphics2d.BasicStroke.prototype.containsPt=function(pt){return false;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getBounds2D=function(){return null;};armyc2.c2sd.graphics2d.BasicStroke.prototype.getBounds=function(){return null;};armyc2.c2sd.graphics2d.BasicStroke.prototype.intersectsRect2=function(x,y,w,h){return false;};armyc2.c2sd.graphics2d.BasicStroke.prototype.intersectsRect=function(rect){return false;};armyc2.c2sd.graphics2d.BasicStroke.GetInteriorPoints=function(pLinePoints,vblCounter,lineType,dist){var j=0;var index=-1;var pt0=null;var pt1=null;var pt2=null;var m01=new armyc2.c2sd.JavaLineArray.ref();var m12=new armyc2.c2sd.JavaLineArray.ref();var m1=new armyc2.c2sd.JavaLineArray.ref();var m2=new armyc2.c2sd.JavaLineArray.ref();var direction=-1;var intersectPt=null;var intersectPoints=new java.util.ArrayList();var b01=0;var b12=0;for(j=0;j<vblCounter;j++){if(j===0||j===vblCounter-1){pt0=pLinePoints[vblCounter-2];pt1=pLinePoints[0];pt2=pLinePoints[1];}else{pt0=pLinePoints[j-1];pt1=pLinePoints[j];pt2=pLinePoints[j+1];}
- var pt00=null;var pt01=null;var pt10=null;var pt11=null;index=j-1;if(index<0){index=vblCounter-1;}
- direction=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pt0,pt1,pLinePoints,vblCounter,index,lineType);switch(direction){case 0:pt00=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,1,dist);pt01=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,1,dist);break;case 1:pt00=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,0,dist);pt01=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,0,dist);break;case 2:pt00=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,3,dist);pt01=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,3,dist);break;case 3:pt00=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,2,dist);pt01=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,2,dist);break;}
- index=j;if(j===vblCounter-1){index=0;}
- direction=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pt1,pt2,pLinePoints,vblCounter,index,lineType);switch(direction){case 0:pt10=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt1,1,dist);pt11=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt2,1,dist);break;case 1:pt10=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt1,0,dist);pt11=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt2,0,dist);break;case 2:pt10=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt1,3,dist);pt11=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt2,3,dist);break;case 3:pt10=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt1,2,dist);pt11=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt2,2,dist);break;}
- if(pt0.x===pt1.x&&pt1.x===pt2.x){intersectPt=new armyc2.c2sd.JavaLineArray.POINT2(pt01);intersectPoints.add(intersectPt);continue;}
- armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(pt00,pt01,m01);armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(pt10,pt11,m12);if(m01.value[0]===m12.value[0]){intersectPt=new armyc2.c2sd.JavaLineArray.POINT2(pt01);intersectPoints.add(intersectPt);continue;}
- b01=pt01.y-m01.value[0]*pt01.x;b12=pt11.y-m12.value[0]*pt11.x;intersectPt=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m01.value[0],b01,m12.value[0],b12,1,1,0,0);intersectPoints.add(intersectPt);}
- return intersectPoints;};armyc2.c2sd.graphics2d.BasicStroke.JOIN_MITER=0;armyc2.c2sd.graphics2d.BasicStroke.JOIN_ROUND=1;armyc2.c2sd.graphics2d.BasicStroke.JOIN_BEVEL=2;armyc2.c2sd.graphics2d.BasicStroke.CAP_BUTT=0;armyc2.c2sd.graphics2d.BasicStroke.CAP_ROUND=1;armyc2.c2sd.graphics2d.BasicStroke.CAP_SQUARE=2;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.BufferedImage=function(){this.createGraphics=function(){return new armyc2.c2sd.graphics2d.Graphics2D();};this.flush=function(){return;};this.getWidth=function(){return 0;};this.getHeight=function(){return 0;};};armyc2.c2sd.graphics2d.BufferedImage.TYPE_INT_ARGB=2;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Font=function(){var _size=12;var _text="";var _type=0;if(arguments.length>0){_text=arguments[0];_type=arguments[1];_size=arguments[2];}
- this.getSize=function()
- {return _size;};};armyc2.c2sd.graphics2d.Font.PLAIN=0;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.FontMetrics=function(font){var _fontRenderContext=null;var _font=null;if(font)
- _font=font;else
- _font=armyc2.c2sd.renderer.utilities.RendererSettings.getModifierFont();var textInfoBuffer=document.createElement('canvas');textInfoBuffer.width=1;textInfoBuffer.height=1;this.textInfoContext=textInfoBuffer.getContext('2d');this.textInfoContext.font=_font;this.stringWidth=function(str)
- {var location=new armyc2.c2sd.renderer.so.Point(0,0);var bounds=armyc2.c2sd.renderer.utilities.RendererUtilities.getTextBounds(this.textInfoContext,str,location);var stringWidth=bounds.width;return stringWidth;};this.stringHeight=function(str)
- {var RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;var fontName="Arial";var fontStyle="normal";var fontSize=16;var height=armyc2.c2sd.renderer.utilities.RendererUtilities.measureTextHeight(fontName,fontSize,fontStyle).fullHeight;stringHeight=height;return stringHeight;};this.getTextBounds=function(str)
- {var location=new armyc2.c2sd.renderer.so.Point(0,0);var bounds=armyc2.c2sd.renderer.utilities.RendererUtilities.getTextBounds(this.textInfoContext,str,location,undefined);return bounds;};this.getFontRenderContext=function(){return _fontRenderContext;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.FontRenderContext=function(){};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.GeneralPath=function(){this._path=new android.graphics.Path();this._pathIterator=new armyc2.c2sd.graphics2d.PathIterator(null);this.getBounds=function(){var rect=this._pathIterator.getBounds();return new armyc2.c2sd.graphics2d.Rectangle(Math.floor(rect.x),Math.floor(rect.y),Math.floor(rect.width),Math.floor(rect.height));};};armyc2.c2sd.graphics2d.GeneralPath.prototype.lineTo=function(x,y){this._path.lineTo(x,y);this._pathIterator.lineTo(x,y);};armyc2.c2sd.graphics2d.GeneralPath.prototype.moveTo=function(x,y){this._path.moveTo(x,y);this._pathIterator.moveTo(x,y);};armyc2.c2sd.graphics2d.GeneralPath.prototype.quadTo=function(x1,y1,x2,y2){this._path.quadTo(x1,y1,x2,y2);this._pathIterator.quadTo(x1,y1,x2,y2);};armyc2.c2sd.graphics2d.GeneralPath.prototype.cubicTo=function(x1,y1,x2,y2,x3,y3){this._path.cubicTo(x1,y1,x2,y2,x3,y3);this._pathIterator.cubicTo(x1,y1,x2,y2,x3,y3);};armyc2.c2sd.graphics2d.GeneralPath.prototype.curveTo=function(x1,y1,x2,y2,x3,y3){this._path.cubicTo(x1,y1,x2,y2,x3,y3);this._pathIterator.cubicTo(x1,y1,x2,y2,x3,y3);};armyc2.c2sd.graphics2d.GeneralPath.prototype.computeBounds=function(rect){var rectf=new android.graphics.RectF();this._path.computeBounds(rectf,true);rect.x=rectf.left;rect.y=rectf.top;rect.width=rectf.bottom-rectf.top;rect.setRect(rectf.left,rectf.top,rectf.width(),rectf.height());};armyc2.c2sd.graphics2d.GeneralPath.prototype.closePath=function(){if(this._path!==null)
- this._path.close();};armyc2.c2sd.graphics2d.GeneralPath.prototype.containsPt2=function(x,y){return false;};armyc2.c2sd.graphics2d.GeneralPath.prototype.containsPt=function(pt){return false;};armyc2.c2sd.graphics2d.GeneralPath.prototype.containsRect2=function(x,y,width,height){var rect2=this.getBounds();return rect2.containsRect2(x,y,width,height);};armyc2.c2sd.graphics2d.GeneralPath.prototype.containsRect=function(r){var rect=new armyc2.c2sd.graphics2d.Rectangle(Math.floor(r.x),Math.floor(r.y),Math.floor(r.width),Math.floor(r.height));var rect2=this.getBounds();return rect2.containsRect2(rect.x,rect.y,rect.width,rect.height);};armyc2.c2sd.graphics2d.GeneralPath.prototype.getBounds2D=function(){return this._pathIterator.getBounds();};armyc2.c2sd.graphics2d.GeneralPath.prototype.intersectsRect2=function(x,y,w,h){return this.getBounds().intersectsRect2(x,y,w,h);};armyc2.c2sd.graphics2d.GeneralPath.prototype.intersectsRect=function(rect){return this.getBounds().intersectsRect2(rect.x,rect.y,rect.width,rect.height);};armyc2.c2sd.graphics2d.GeneralPath.prototype.append=function(shape,connect){var gp=shape;var pi=gp.getPathIterator(null);var pts=pi.getPoints();var j=0;var pt=null;var pt1=null;var pt2=null;for(j=0;j<pts.size();j++){pt=pts.get(j);switch(pt.style){case 0:this._path.moveTo(pt.x,pt.y);this._pathIterator.moveTo(pt.x,pt.y);break;case 1:this._path.lineTo(pt.x,pt.y);this._pathIterator.lineTo(pt.x,pt.y);break;case 3:pt1=pts.get(j+1);j++;pt2=pts.get(j+2);j++;this._path.cubicTo(pt.x,pt.y,pt1.x,pt1.y,pt2.x,pt2.y);this._pathIterator.cubicTo(pt.x,pt.y,pt1.x,pt1.y,pt2.x,pt2.y);break;default:break;}}};armyc2.c2sd.graphics2d.GeneralPath.prototype.getPath=function(){return this._path;};armyc2.c2sd.graphics2d.GeneralPath.prototype.getPathIterator=function(tx){this._pathIterator.reset();return this._pathIterator;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Graphics2D=function(){var _fontRenderContext=null;var _font=new armyc2.c2sd.graphics2d.Font("arial",10,10);var _fontMetrics=new armyc2.c2sd.graphics2d.FontMetrics(_font);this.setFont=function(value){_font=value;_fontMetrics=new armyc2.c2sd.graphics2d.FontMetrics(_font);};this.getfont=function(){return null;};this.setFontMetrics=function(value){_fontMetrics=value;};this.getFontMetrics=function(){return _fontMetrics;};this.setColor=function(color){return;};this.setBackground=function(color){return;};this.setTransform=function(id){return;};this.getTransform=function(){return null;};this.setStroke=function(stroke){return;};this.drawLine=function(x1,y1,x2,y2){return;};this.dispose=function(){return;};this.rotate=function(theta,x,y){return;};this.clearRect=function(x,y,width,height){return;};this.drtawString=function(s,x,y){return;};this.getFontRenderContext=function(){return _fontRenderContext;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.ImageIO=function(){};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Line2D=function(){this.x1=0;this.y1=0;this.x2=0;this.y2=0;if(arguments.length===4){this.x1=arguments[0];this.y1=arguments[1];this.x2=arguments[2];this.y2=arguments[3];}
- else if(arguments.length===2)
- {var x=arguments[0].getX();var y=arguments[0].getY();this.x1=x;this.y1=y;x=arguments[1].getX();y=arguments[1].getY();this.x2=x;this.y2=y;}};armyc2.c2sd.graphics2d.Line2D.prototype.getX1=function(){return this.x1;};armyc2.c2sd.graphics2d.Line2D.prototype.getY1=function(){return this.y1;};armyc2.c2sd.graphics2d.Line2D.prototype.getP1=function(){var pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x1,this.y1);return pt2d;};armyc2.c2sd.graphics2d.Line2D.prototype.getX2=function(){return this.x2;};armyc2.c2sd.graphics2d.Line2D.prototype.getY2=function(){return this.y2;};armyc2.c2sd.graphics2d.Line2D.prototype.getP2=function(){var pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x2,this.y2);return pt2d;};armyc2.c2sd.graphics2d.Line2D.prototype.getBounds2D=function(){var x;var y;var w;var h;if(this.x1<this.x2){x=this.x1;w=this.x2-this.x1;}else{x=this.x2;w=this.x1-this.x2;}
- if(this.y1<this.y2){y=this.y1;h=this.y2-this.y1;}else{y=this.y2;h=this.y1-this.y2;}
- return new armyc2.c2sd.graphics2d.Rectangle2D(x,y,w,h);};armyc2.c2sd.graphics2d.Line2D.prototype.intersectsLine=function(edge){var edgex1=edge.getX1();var edgey1=edge.getY1();var edgex2=edge.getX2();var edgey2=edge.getY2();if(this.x2===this.x1&&edgex2===edgex1)
- {if(this.x1!==edgex1)
- return false;if(this.y1<this.y2)
- {if(this.y1<=edgey1&&edgey1<=this.y2)
- return true;else if(this.y1<=edgey2&&edgey2<=this.y2)
- return true;else
- return false;}
- else if(this.y2<this.y1)
- {if(this.y2<=edgey1&&edgey1<=this.y1)
- return true;else if(this.y2<=edgey2&&edgey2<=this.y1)
- return true;else
- return false;}}
- if(this.x1<=this.x2)
- {if(edgex1<this.x1&&edgex2<this.x1)
- return false;if(edgex1>this.x2&&edgex2>this.x2)
- return false;}
- else
- {if(edgex1<this.x2&&edgex2<this.x2)
- return false;if(edgex1>this.x1&&edgex2>this.x1)
- return false;}
- if(this.y1<=this.y2)
- {if(edgey1<this.y1&&edgey2<this.y1)
- return false;if(edgey1>this.y2&&edgey2>this.y2)
- return false;}
- else
- {if(edgey1<this.y2&&edgey2<this.y2)
- return false;if(edgey1>this.y1&&edgey2>this.y1)
- return false;}
- var slope=(this.y2-this.y1)/(this.x2-this.x1);var b1=this.y2-slope*this.x2;var edgeSlope=(edgey2-edgey1)/(edgex2-edgex1);var b2=edgey2-edgeSlope*edgex2;var rect=new armyc2.c2sd.graphics2d.Rectangle2D(this.x1,this.y1,this.x2,this.y2);var x0=edgex1;var width=Math.abs(edgex1-edgex2);var y0=edgey1;var height=Math.abs(edgey1-edgey2);var rect2=new armyc2.c2sd.graphics2d.Rectangle2D(x0,y0,width,height);if(slope===edgeSlope){if(b1===b2&&rect.intersectsRect(rect2)===true)
- return true;else
- return false;}else{var x=(b2-b1)/(slope-edgeSlope);var y=(slope*x+b1);if(this.x1<this.x2){if(x<this.x1)
- return false;if(x>this.x2)
- return false;}else if(this.x2<this.x1){if(x<this.x2)
- return false;if(x>this.x1)
- return false;}
- if(this.y1<this.y2){if(y<this.y1)
- return false;if(y>this.y2)
- return false;}else if(this.y2<this.y1){if(y<this.y2)
- return false;if(y>this.y1)
- return false;}
- if(edgex1<edgex2){if(x<edgex1)
- return false;if(x>edgex2)
- return false;}else if(edgex2<edgex1){if(x<edgex2)
- return false;if(x>edgex1)
- return false;}
- if(edgey1<edgey2){if(y<edgey1)
- return false;if(y>edgey2)
- return false;}else if(edgey2<edgey1){if(y<edgey2)
- return false;if(y>edgey1)
- return false;}}
- return true;};armyc2.c2sd.graphics2d.Line2D.prototype.setLine=function()
- {if(arguments.length===1)
- {var line1=arguments[0];this.x1=line1.x1;this.y1=line1.y1;this.x2=line1.x2;this.y2=line1.y2;}
- else if(arguments.length===2)
- {var pt1=arguments[0];var pt2=arguments[1];this.x1=pt1.x;this.y1=pt1.y;this.x2=pt2.x;this.y2=pt2.y;}
- else if(arguments.length===4)
- {var x1=arguments[0];var y1=arguments[1];var x2=arguments[2];var y2=arguments[3];this.x1=x1;this.y1=y1;this.x2=x2;this.y2=y2;}};armyc2.c2sd.graphics2d.Line2D.ptSegDistSq=function(x1,y1,x2,y2,px,py){x2-=x1;y2-=y1;px-=x1;py-=y1;var dotprod=px*x2+py*y2;var projlenSq;if(dotprod<=0.0){projlenSq=0.0;}else{px=x2-px;py=y2-py;dotprod=px*x2+py*y2;if(dotprod<=0.0){projlenSq=0.0;}else{projlenSq=dotprod*dotprod/(x2*x2+y2*y2);}}
- var lenSq=px*px+py*py-projlenSq;if(lenSq<0){lenSq=0;}
- return lenSq;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.PathIterator=function(){this._currentSeg=0;this._pts=new java.util.ArrayList();this.reset=function(){this._currentSeg=0;};this.setPathIterator=function(pts){this._currentSeg=0;this._pts=pts;};};armyc2.c2sd.graphics2d.PathIterator.prototype.getPoints=function(){return this._pts;};armyc2.c2sd.graphics2d.PathIterator.prototype.currentSegment=function(coords){coords[0]=this._pts.get(this._currentSeg).x;coords[1]=this._pts.get(this._currentSeg).y;return this._pts.get(this._currentSeg).style;};armyc2.c2sd.graphics2d.PathIterator.prototype.getWindingRule=function(){return 1;};armyc2.c2sd.graphics2d.PathIterator.prototype.isDone=function(){if(this._currentSeg===this._pts.size())
- return true;return false;};armyc2.c2sd.graphics2d.PathIterator.prototype.next=function(){this._currentSeg++;};armyc2.c2sd.graphics2d.PathIterator.prototype.moveTo=function(x,y){if(this._pts.size()>0)
- {var lastPt=this._pts.get(this._pts.size()-1);if(lastPt.x===x&&lastPt.y===y)
- return;}
- this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x,y,0));};armyc2.c2sd.graphics2d.PathIterator.prototype.lineTo=function(x,y){if(this._pts.size()>0)
- {var lastPt=this._pts.get(this._pts.size()-1);if(lastPt.x===x&&lastPt.y===y)
- return;}
- this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x,y,1));};armyc2.c2sd.graphics2d.PathIterator.prototype.cubicTo=function(x1,y1,x2,y2,x3,y3){this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1,3));this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2,3));this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x3,y3,3));};armyc2.c2sd.graphics2d.PathIterator.prototype.curveTo=function(x1,y1,x2,y2,x3,y3){this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1,3));this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2,3));this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x3,y3,3));};armyc2.c2sd.graphics2d.PathIterator.prototype.quadTo=function(x1,y1,x2,y2){this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x1,y1,2));this._pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x2,y2,2));};armyc2.c2sd.graphics2d.PathIterator.prototype.getBounds=function(){var j=0;var left=this._pts.get(0).x;var right=this._pts.get(0).x;var top=this._pts.get(0).y;var bottom=this._pts.get(0).y;for(j=1;j<this._pts.size();j++){if(this._pts.get(j).x<left)
- left=this._pts.get(j).x;if(this._pts.get(j).x>right)
- right=this._pts.get(j).x;if(this._pts.get(j).y<top)
- top=this._pts.get(j).y;if(this._pts.get(j).y>bottom)
- bottom=this._pts.get(j).y;}
- var rect=new armyc2.c2sd.graphics2d.Rectangle2D(left,top,right-left,bottom-top);return rect;};armyc2.c2sd.graphics2d.PathIterator.SEG_CLOSE=4;armyc2.c2sd.graphics2d.PathIterator.SEG_CUBICTO=3;armyc2.c2sd.graphics2d.PathIterator.SEG_LINETO=1;armyc2.c2sd.graphics2d.PathIterator.SEG_MOVETO=0;armyc2.c2sd.graphics2d.PathIterator.SEG_QUADTO=2;armyc2.c2sd.graphics2d.PathIterator.WIND_EVEN_ODD=0;armyc2.c2sd.graphics2d.PathIterator.WIND_NON_ZERO=1;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Point=function(){this.x=0;this.y=0;if(arguments.length===2)
- {this.x=Number(arguments[0]);this.y=Number(arguments[1]);}};armyc2.c2sd.graphics2d.Point.prototype.getX=function(){return this.x;};armyc2.c2sd.graphics2d.Point.prototype.getY=function(){return this.y;};armyc2.c2sd.graphics2d.Point.prototype.setLocation=function(x1,y1){this.x=Number(x1);this.y=Number(y1);};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Point2D=function(){this.x=0;this.y=0;if(arguments.length===2)
- {this.x=Number(arguments[0]);this.y=Number(arguments[1]);}
- if(arguments.length===1)
- {this.x=Number(arguments[0].x);this.y=Number(arguments[0].y);}};armyc2.c2sd.graphics2d.Point2D.prototype.distance=function(x1,y1)
- {var dist=Math.sqrt((this.x-x1)*(this.x-x1)+(this.y-y1)*(this.y-y1));return dist;};armyc2.c2sd.graphics2d.Point2D.prototype.getX=function(){return this.x;};armyc2.c2sd.graphics2d.Point2D.prototype.getY=function(){return this.y;};armyc2.c2sd.graphics2d.Point2D.prototype.setLocation=function(x1,y1){this.x=Number(x1);this.y=Number(y1);};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Polygon=function(){this.bounds=null;this.pts=new java.util.ArrayList();this.contains=function(x,y){if(this.pts.size()<3)
- return false;if((this.pts.get(0).x!==this.pts.get(this.pts.size()-1).x)||(this.pts.get(0).y!==this.pts.get(this.pts.size()-1).y)){this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(this.pts.get(0)));}
- var lowVal=-100;var pt0=new armyc2.c2sd.JavaLineArray.POINT2(lowVal,y);var pt1=new armyc2.c2sd.JavaLineArray.POINT2(x,y);var edge=null;var ray=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0.x,pt0.y,pt1.x,pt1.y);var j=0;var intersectCounter=0;for(j=0;j<this.pts.size()-1;j++)
- {edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(this.pts.get(j).x,this.pts.get(j).y,this.pts.get(j+1).x,this.pts.get(j+1).y);if(ray.intersectsLine(edge)===true)
- intersectCounter++;}
- if(intersectCounter%2===1)
- return true;return false;};this.computeBounds=function(rect,exact)
- {var j=0;var left=this.pts.get(0).x;var right=this.pts.get(0).x;var top=this.pts.get(0).y;var bottom=this.pts.get(0).y;var pt=null;for(j=1;j<this.pts.size();j++)
- {pt=this.pts.get(j);if(pt.x<left)
- left=pt.x;if(pt.x>right)
- right=pt.x;if(pt.y<top)
- top=pt.y;if(pt.y>bottom)
- bottom=pt.y;}
- rect.left=left;rect.top=top;rect.right=right;rect.bottom=bottom;return;};};armyc2.c2sd.graphics2d.Polygon.prototype.size=function()
- {if(this.pts!==null)
- return this.pts.size();else
- return 0;};armyc2.c2sd.graphics2d.Polygon.prototype.addPoint=function(x,y)
- {this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(x,y));};armyc2.c2sd.graphics2d.Polygon.prototype.containsPt2=function(x,y)
- {if(this.pts.size()<3)
- return false;if((this.pts.get(0).x!==this.pts.get(this.pts.size()-1).x)||(this.pts.get(0).y!==this.pts.get(this.pts.size()-1).y)){this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(this.pts.get(0)));}
- var lowVal=-100;var pt0=new armyc2.c2sd.JavaLineArray.POINT2(lowVal,y);var pt1=new armyc2.c2sd.JavaLineArray.POINT2(x,y);var edge=null;var ray=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0.x,pt0.y,pt1.x,pt1.y);var j=0;var intersectCounter=0;for(j=0;j<this.pts.size()-1;j++){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(this.pts.get(j).x,this.pts.get(j).y,this.pts.get(j+1).x,this.pts.get(j+1).y);if(ray.intersectsLine(edge)===true)
- intersectCounter++;}
- if(intersectCounter%2===1)
- return true;return false;};armyc2.c2sd.graphics2d.Polygon.prototype.containsPt3=function(x,y)
- {if(this.pts.size()<3)
- return false;if((this.pts.get(0).x!==this.pts.get(this.pts.size()-1).x)||(this.pts.get(0).y!==this.pts.get(this.pts.size()-1).y))
- {this.pts.add(new armyc2.c2sd.JavaLineArray.POINT2(this.pts.get(0)));}
- var lowVal=-100;var pt0=new armyc2.c2sd.JavaLineArray.POINT2(lowVal,y);var pt1=new armyc2.c2sd.JavaLineArray.POINT2(x,y);var edge=null;var ray=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0.x,pt0.y,pt1.x,pt1.y);var j=0;var intersectCounter=0;for(j=0;j<this.pts.size()-1;j++){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(this.pts.get(j).x,this.pts.get(j).y,this.pts.get(j+1).x,this.pts.get(j+1).y);if(ray.intersectsLine(edge)===true)
- intersectCounter++;}
- if(intersectCounter%2===1)
- return true;return false;};armyc2.c2sd.graphics2d.Polygon.prototype.containsPt=function(pt){return this.contains(Math.floor(pt.getX()),Math.floor(pt.getY()));};armyc2.c2sd.graphics2d.Polygon.prototype.containsRect2=function(x,y,w,h)
- {if(this.bounds!==null)
- {var fx=x;var fy=y;var fw=w;var fh=h;var that=new android.graphics.Path();that.moveTo(fx,fy);that.lineTo(fx+fw,fy);that.lineTo(fx+fw,fy-fh);that.lineTo(fx,fy-fh);that.close();var thatBounds=new armyc2.c2sd.graphics2d.Rectangle2D();var rectf=new android.graphics.RectF(thatBounds.x,thatBounds.y,thatBounds.x+thatBounds.width,thatBounds.y+thatBounds.height);that.computeBounds(rectf,false);return this.bounds.containsRect(thatBounds);}
- else
- {return false;}};armyc2.c2sd.graphics2d.Polygon.prototype.intersectsRect2=function(x,y,w,h)
- {if(this.bounds!==null){var fx=x;var fy=y;var fw=w;var fh=h;var that=new android.graphics.Path();that.moveTo(fx,fy);that.lineTo(fx+fw,fy);that.lineTo(fx+fw,fy-fh);that.lineTo(fx,fy-fh);that.close();var thatBounds=new android.graphics.RectF();var rectf=new android.graphics.RectF(this.bounds.x,this.bounds.y,this.bounds.x+this.bounds.width,this.bounds.y+this.bounds.height);return android.graphics.RectF.intersects(rectf,thatBounds);}
- else
- {return false;}};armyc2.c2sd.graphics2d.Polygon.prototype.intersectsRect=function(r){if(this.bounds!==null){var rectf=new android.graphics.RectF(this.bounds.x,this.bounds.y,this.bounds.x+this.bounds.width,this.bounds.y+this.bounds.height);return android.graphics.RectF.intersects(rectf,r);}else{return false;}};armyc2.c2sd.graphics2d.Polygon.prototype.invalidate=function(){this.pts=new java.util.ArrayList();this.bounds=null;};armyc2.c2sd.graphics2d.Polygon.prototype.close=function()
- {this.bounds=new armyc2.c2sd.graphics2d.Rectangle2D();var rectf=new android.graphics.RectF(this.bounds.x,this.bounds.y,this.bounds.x+this.bounds.width,this.bounds.y+this.bounds.height);this.computeBounds(rectf,false);};armyc2.c2sd.graphics2d.Polygon.prototype.getBounds2D=function()
- {return null;};armyc2.c2sd.graphics2d.Polygon.prototype.getBounds=function(){return null;};armyc2.c2sd.graphics2d.Polygon.prototype.getPathIterator=function(at)
- {var pi=new armyc2.c2sd.graphics2d.PathIterator(null);var j=0;if(this.pts.size()>0){pi.moveTo(this.pts.get(0).x,this.pts.get(0).y);for(j=1;j<this.pts.size();j++){pi.lineTo(this.pts.get(j).x,this.pts.get(j).y);}}
- pi.reset();return pi;};armyc2.c2sd.graphics2d.Polygon.prototype.getPts=function()
- {return this.pts;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Rectangle=function(){this.x=0;this.y=0;this.width=0;this.height=0;if(arguments.length===4)
- {this.x=arguments[0];this.y=arguments[1];this.width=arguments[2];this.height=arguments[3];}
- this.containsPt2=function(x1,y1){if(this.x<=x1&&x1<=this.x+this.width&&this.y<=y1&&y1<=this.y+this.height)
- return true;else
- return false;};};armyc2.c2sd.graphics2d.Rectangle.prototype.getBounds=function(){return null;};armyc2.c2sd.graphics2d.Rectangle.prototype.getPathIterator=function(at){return null;};armyc2.c2sd.graphics2d.Rectangle.prototype.intersectsLine=function(line){var pt0=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x,this.y);var pt1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x+this.width,this.y);var edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0,pt1);if(line.intersectsLine(edge))
- return true;var pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x+this.width,this.y+this.height);edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt1,pt2);if(line.intersectsLine(edge))
- return true;var pt3=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x,this.y+this.height);edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt2,pt3);if(line.intersectsLine(edge))
- return true;edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt3,pt0);if(line.intersectsLine(edge))
- return true;return false;};armyc2.c2sd.graphics2d.Rectangle.prototype.intersectsRect=function(rect){if(this.x+this.width<rect.x)
- return false;if(this.x>rect.x+rect.width)
- return false;if(this.y+this.height<rect.y)
- return false;if(this.y>rect.y+rect.height)
- return false;return true;};armyc2.c2sd.graphics2d.Rectangle.prototype.intersectsRect2=function(x1,y1,width1,height1){if(this.x+this.width<x1)
- return false;if(this.x>x1+width1)
- return false;if(this.y+this.height<y1)
- return false;if(this.y>y1+height1)
- return false;return true;};armyc2.c2sd.graphics2d.Rectangle.prototype.containsRect=function(rect){var x1=Math.floor(rect.getX());var y1=Math.floor(rect.getY());if(this.containsPt2(x1,y1)){x1+=rect.getWidth();y1+=rect.getHeight();if(this.containsPt2(x1,y1))
- return true;}
- return false;};armyc2.c2sd.graphics2d.Rectangle.prototype.containsRect2=function(x1,y1,width1,height1){if(this.containsPt2(x1,y1)&&this.containsPt2(x1+width1,y1+height1))
- return true;else
- return false;};armyc2.c2sd.graphics2d.Rectangle.prototype.containsPt=function(pt){if(this.x<=pt.getX()&&pt.getX()<=this.x+this.width&&this.y<=pt.getY()&&pt.getY()<=this.y+this.height)
- return true;else
- return false;};armyc2.c2sd.graphics2d.Rectangle.prototype.getBounds2D=function(){return new armyc2.c2sd.graphics2d.Rectangle2D(this.x,this.y,this.width,this.height);};armyc2.c2sd.graphics2d.Rectangle.prototype.getX=function(){return this.x;};armyc2.c2sd.graphics2d.Rectangle.prototype.getY=function(){return this.y;};armyc2.c2sd.graphics2d.Rectangle.prototype.getMinX=function(){return this.x;};armyc2.c2sd.graphics2d.Rectangle.prototype.getMinY=function(){return this.y;};armyc2.c2sd.graphics2d.Rectangle.prototype.getMaxX=function(){return this.x+this.width;};armyc2.c2sd.graphics2d.Rectangle.prototype.getMaxY=function(){return this.y+this.height;};armyc2.c2sd.graphics2d.Rectangle.prototype.getHeight=function(){return this.height;};armyc2.c2sd.graphics2d.Rectangle.prototype.getWidth=function(){return this.width;};armyc2.c2sd.graphics2d.Rectangle.prototype.grow=function(h,v){return;};armyc2.c2sd.graphics2d.Rectangle.prototype.setRect=function(rect){this.x=rect.x;this.y=rect.y;this.width=rect.width;this.height=rect.height;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Rectangle2D=function(){this.x=0;this.y=0;this.width=0;this.height=0;if(arguments.length===4)
- {this.x=arguments[0];this.y=arguments[1];this.width=arguments[2];this.height=arguments[3];}
- this.containsPt2=function(x1,y1){if(this.x<=x1&&x1<=this.x+this.width&&this.y<=y1&&y1<=this.y+this.width)
- return true;else
- return false;};this.add=function(x1,y1){if(x1<this.x){this.width=this.width+(this.x-x1);this.x=x1;}
- if(y1<this.y){this.height=this.height+(this.y-y1);this.y=y1;}
- if(x1>this.x+this.width)
- this.width+=(x1-this.x);if(y1>this.y+this.height)
- this.height+=(y1-this.y);};};armyc2.c2sd.graphics2d.Rectangle2D.prototype.createIntersection=function(r){if(r.x>this.x+this.width)
- return null;if(r.x+r.width<this.x)
- return null;if(r.y>this.y+this.height)
- return null;if(r.y+r.height<this.y)
- return null;if(r.containsRect(this))
- return this;if(this.containsRect(r))
- return r;var x1=0;var y1=0;var x2=0;var y2=0;if(this.x<r.x){x1=r.x;x2=this.x+this.width;}else{x1=this.x;x2=r.x+r.width;}
- if(this.y<r.y){y1=r.y;y2=this.y+this.height;}else{y1=this.y;y2=r.y+r.height;}
- return new armyc2.c2sd.graphics2d.Rectangle2D(x1,y1,x2-x1,y2-y1);};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getX=function(){return this.x;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getY=function(){return this.y;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getMinX=function(){return this.x;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getMinY=function(){return this.y;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getMaxX=function(){return this.x+this.width;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getMaxY=function(){return this.y+this.height;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getHeight=function(){return this.height;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.getWidth=function(){return this.width;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.intersectsRect=function(rect){if(this.x+this.width<rect.x)
- return false;if(this.x>rect.x+rect.width)
- return false;if(this.y+this.height<rect.y)
- return false;if(this.y>rect.y+rect.height)
- return false;return true;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.intersectsRect2=function(x1,y1,width1,height1){if(this.x+this.width<x1)
- return false;if(this.x>x1+width1)
- return false;if(this.y+this.height<y1)
- return false;if(this.y>y1+height1)
- return false;return true;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.containsRect=function(rect){var x1=rect.getX();var y1=rect.getY();if(this.containsPt2(x1,y1)){x1+=rect.getWidth();y1+=rect.getHeight();if(this.containsPt2(x1,y1))
- return true;}
- return false;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.containsPt=function(pt){if(this.x<=pt.getX()&&pt.getX()<=this.x+this.width)
- if(this.y<=pt.getY()&&pt.getY()<=this.x+this.height)
- return true;return false;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.intersectsLine=function(line){var pt0=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x,this.y);var pt1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x+this.width,this.y);var edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0,pt1);if(line.intersectsLine(edge))
- return true;var pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x+this.width,this.y+this.height);edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt1,pt2);if(line.intersectsLine(edge))
- return true;var pt3=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(this.x,this.y+this.height);edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt2,pt3);if(line.intersectsLine(edge))
- return true;edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt3,pt0);if(line.intersectsLine(edge))
- return true;return false;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.containsRect2=function(x,y,width,height){var x1=x;var y1=y;if(this.containsPt2(x1,y1)){x1+=width;y1+=height;if(this.containsPt2(x1,y1))
- return true;}
- return false;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.isEmpty=function(){if(this.width===0&&this.height===0)
- return true;else
- return false;};armyc2.c2sd.graphics2d.Rectangle2D.prototype.setRect=function()
- {if(arguments.length===4)
- {this.x=arguments[0];this.y=arguments[1];this.width=arguments[2];this.height=arguments[3];}
- else if(arguments.length===1)
- {this.x=arguments[0].getX();this.y=arguments[0].getY();this.width=arguments[0].getWidth();this.height=arguments[0].getHeight();}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Shape={};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Stroke={};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.TextLayout=function(){var _font=null;var _str="";if(arguments.length>1)
- {_str=arguments[0];_font=arguments[1];}
- this.getOutline=function(tx){return new armyc2.c2sd.graphics2d.GeneralPath();};this.getPixelBounds=function(frc,x,y){return null;};this.getBounds=function(){var width=Math.floor(_font.getSize()/2)*_str.length;var height=_font.getSize();var rect=new armyc2.c2sd.graphics2d.Rectangle(0,0,width,height);return rect;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.TexturePaint=function(){var _rect=null;var _g2d=null;var _bi=null;if(arguments.length===2)
- {_bi=arguments[0];_rect=arguments[1];}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.Arc2D=function()
- {this.x=0;this.y=0;this.width=0;this.height=0;this.start=0;this.extent=0;this.type=0;if(arguments.length===1)
- {var t=arguments[0];this.setArcType(t);}
- else if(arguments.length===7)
- {this.x=arguments[0];this.y=arguments[1];this.width=arguments[2];this.height=arguments[3];this.start=arguments[4];this.extent=arguments[5];armyc2.c2sd.graphics2d.Arc2D.setArcType(this,arguments[6]);}
- else if(arguments.length===4)
- {var ellipseBounds=arguments[0];var start=arguments[1];var extent=arguments[2];var type=arguments[3];armyc2.c2sd.graphics2d.Arc2D.setArcType(this,type);this.x=ellipseBounds.getX();this.y=ellipseBounds.getY();this.width=ellipseBounds.getWidth();this.height=ellipseBounds.getHeight();this.start=start;this.extent=extent;}
- this.getX=function(){return this.x;};this.getY=function(){return this.y;};this.getWidth=function(){return this.width;};this.getHeight=function(){return this.height;};this.getAngleStart=function(){return this.start;};this.getAngleExtent=function(){return this.extent;};this.isEmpty=function(){return(this.width<=0.0||this.height<=0.0);};this.setArc=function(x,y,w,h,angSt,angExt,closure){this.setArcType(closure);this.x=x;this.y=y;this.width=w;this.height=h;this.start=angSt;this.extent=angExt;};this.setAngleStart=function(angSt){this.start=angSt;};this.setAngleExtent=function(angExt){this.extent=angExt;};this.getArcType=function(){return this.type;};this.getStartPoint=function(){var angle=Math.toRadians(-this.getAngleStart());var x=this.getX()+(Math.cos(angle)*0.5+0.5)*this.getWidth();var y=this.getY()+(Math.sin(angle)*0.5+0.5)*this.getHeight();return new armyc2.c2sd.graphics2d.Point2D(x,y);};this.getEndPoint=function(){var angle=Math.toRadians(-this.getAngleStart()-this.getAngleExtent());var x=this.getX()+(Math.cos(angle)*0.5+0.5)*this.getWidth();var y=this.getY()+(Math.sin(angle)*0.5+0.5)*this.getHeight();return new armyc2.c2sd.graphics2d.Point2D(x,y);};this.setArc2=function(rect,angSt,angExt,closure){this.setArc(rect.getX(),rect.getY(),rect.getWidth(),rect.getHeight(),angSt,angExt,closure);};this.setArc3=function(a){this.setArc(a.getX(),a.getY(),a.getWidth(),a.getHeight(),a.getAngleStart(),a.getAngleExtent(),a.type);};this.setArcByCenter=function(x,y,radius,angSt,angExt,closure){this.setArc(x-radius,y-radius,radius*2.0,radius*2.0,angSt,angExt,closure);};this.setArcByTangent=function(p1,p2,p3,radius){var ang1=Math.atan2(p1.getY()-p2.getY(),p1.getX()-p2.getX());var ang2=Math.atan2(p3.getY()-p2.getY(),p3.getX()-p2.getX());var diff=ang2-ang1;if(diff>3.141592653589793){ang2-=6.283185307179586;}else if(diff<-3.141592653589793){ang2+=6.283185307179586;}
- var bisect=(ang1+ang2)/2.0;var theta=Math.abs(ang2-bisect);var dist=radius/Math.sin(theta);var x=p2.getX()+dist*Math.cos(bisect);var y=p2.getY()+dist*Math.sin(bisect);if(ang1<ang2){ang1-=1.5707963267948966;ang2+=1.5707963267948966;}else{ang1+=1.5707963267948966;ang2-=1.5707963267948966;}
- ang1=Math.toDegrees(-ang1);ang2=Math.toDegrees(-ang2);diff=ang2-ang1;if(diff<0){diff+=360;}else{diff-=360;}
- this.setArcByCenter(x,y,radius,ang1,diff,this.type);};this.setArcType=function(type){if(type<0||type>2){throw new IllegalArgumentException("invalid type for Arc: "+type);}
- this.type=type;};this.setFrame=function(x,y,w,h){this.setArc(x,y,w,h,this.getAngleStart(),this.getAngleExtent(),this.type);};this.getBounds2D=function(){if(this.isEmpty()){return this.makeBounds(this.getX(),this.getY(),this.getWidth(),this.getHeight());}
- var x1;var y1;var x2;var y2;if(this.getArcType()===2){x1=y1=x2=y2=0.0;}else{x1=y1=1.0;x2=y2=-1.0;}
- var angle=0.0;for(var i=0;i<6;i++){if(i<4){angle+=90.0;if(!this.containsAngle(angle)){continue;}}else if(i===4){angle=this.getAngleStart();}else{angle+=this.getAngleExtent();}
- var rads=Math.toRadians(-angle);var xe=Math.cos(rads);var ye=Math.sin(rads);x1=Math.min(x1,xe);y1=Math.min(y1,ye);x2=Math.max(x2,xe);y2=Math.max(y2,ye);}
- var w=this.getWidth();var h=this.getHeight();x2=(x2-x1)*0.5*w;y2=(y2-y1)*0.5*h;x1=this.getX()+(x1*0.5+0.5)*w;y1=this.getY()+(y1*0.5+0.5)*h;return this.makeBounds(x1,y1,x2,y2);};this.makeBounds=function(x,y,w,h){return null;};this.containsAngle=function(angle){var angExt=this.getAngleExtent();var backwards=(angExt<0.0);if(backwards){angExt=-angExt;}
- if(angExt>=360.0){return true;}
- angle=armyc2.c2sd.graphics2d.Arc2D.normalizeDegrees(angle)-armyc2.c2sd.graphics2d.Arc2D.normalizeDegrees(this.getAngleStart());if(backwards){angle=-angle;}
- if(angle<0.0){angle+=360.0;}
- return(angle>=0.0)&&(angle<angExt);};this.contains=function(x,y){var ellw=this.getWidth();if(ellw<=0.0){return false;}
- var normx=(x-this.getX())/ellw-0.5;var ellh=this.getHeight();if(ellh<=0.0){return false;}
- var normy=(y-this.getY())/ellh-0.5;var distSq=(normx*normx+normy*normy);if(distSq>=0.25){return false;}
- var angExt=Math.abs(this.getAngleExtent());if(angExt>=360.0){return true;}
- var inarc=this.containsAngle(-Math.toDegrees(Math.atan2(normy,normx)));if(this.type===2){return inarc;}
- if(inarc){if(angExt>=180.0){return true;}}else{if(angExt<=180.0){return false;}}
- var angle=Math.toRadians(-this.getAngleStart());var x1=Math.cos(angle);var y1=Math.sin(angle);angle+=Math.toRadians(-this.getAngleExtent());var x2=Math.cos(angle);var y2=Math.sin(angle);var inside=(armyc2.c2sd.graphics2d.Line2D.relativeCCW(x1,y1,x2,y2,2*normx,2*normy)*armyc2.c2sd.graphics2d.Line2D.relativeCCW(x1,y1,x2,y2,0,0)>=0);return inarc?!inside:inside;};this.getPathIterator=function(at){return new armyc2.c2sd.graphics2d.ArcIterator(this,at);};this.hashCode=function(){var bits=java.lang.Double.doubleToLongBits(this.getX());bits+=java.lang.Double.doubleToLongBits(this.getY())*37;bits+=java.lang.Double.doubleToLongBits(this.getWidth())*43;bits+=java.lang.Double.doubleToLongBits(this.getHeight())*47;bits+=java.lang.Double.doubleToLongBits(this.getAngleStart())*53;bits+=java.lang.Double.doubleToLongBits(this.getAngleExtent())*59;bits+=this.getArcType()*61;return((bits)^((bits>>32)));};this.equals=function(obj){if(obj===this){return true;}
- if(Clazz.instanceOf(obj,armyc2.c2sd.graphics2d.Arc2D)){var a2d=obj;return((this.getX()===a2d.getX())&&(this.getY()===a2d.getY())&&(this.getWidth()===a2d.getWidth())&&(this.getHeight()===a2d.getHeight())&&(this.getAngleStart()===a2d.getAngleStart())&&(this.getAngleExtent()===a2d.getAngleExtent())&&(this.getArcType()===a2d.getArcType()));}
- return false;};};armyc2.c2sd.graphics2d.Arc2D.setArcType=function(that,type)
- {if(type<0||type>2){throw new IllegalArgumentException("invalid type for Arc: "+type);}
- that.type=type;};armyc2.c2sd.graphics2d.Arc2D.normalizeDegrees=function(angle){if(angle>180.0){if(angle<=(540.0)){angle=angle-360.0;}else{angle=Math.IEEEremainder(angle,360.0);if(angle===-180.0){angle=180.0;}}}else if(angle<=-180.0){if(angle>(-540.0)){angle=angle+360.0;}else{angle=Math.IEEEremainder(angle,360.0);if(angle===-180.0){angle=180.0;}}}
- return angle;};armyc2.c2sd.graphics2d.Arc2D.OPEN=0;armyc2.c2sd.graphics2d.Arc2D.CHORD=1;armyc2.c2sd.graphics2d.Arc2D.PIE=2;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.ArcIterator=function()
- {this.x=0;this.y=0;this.w=0;this.h=0;this.angStRad=0;this.increment=0;this.cv=0;this.affine=null;this.index=0;this.arcSegs=0;this.lineSegs=0;var a=arguments[0];var at=arguments[1];this.w=a.getWidth()/2;this.h=a.getHeight()/2;this.x=a.getX()+this.w;this.y=a.getY()+this.h;this.angStRad=-Math.toRadians(a.getAngleStart());this.affine=at;var ext=-a.getAngleExtent();if(ext>=360.0||ext<=-360){this.arcSegs=4;this.increment=1.5707963267948966;this.cv=0.5522847498307933;if(ext<0){this.increment=-this.increment;this.cv=-this.cv;}}else{this.arcSegs=Math.floor(Math.ceil(Math.abs(ext)/90.0));this.increment=Math.toRadians(ext/this.arcSegs);this.cv=armyc2.c2sd.graphics2d.ArcIterator.btan(this.increment);if(this.cv===0){this.arcSegs=0;}}
- switch(a.getArcType()){case 0:this.lineSegs=0;break;case 1:this.lineSegs=1;break;case 2:this.lineSegs=2;break;}
- if(this.w<0||this.h<0){this.arcSegs=this.lineSegs=-1;}
- this.getWindingRule=function(){return 1;};this.isDone=function(){return this.index>this.arcSegs+this.lineSegs;};this.next=function(){this.index++;};this.currentSegmentFlt=function(coords){if(this.isDone()){System.out.println("arc iterator out of bounds");return-1;}
- var angle=this.angStRad;if(this.index===0){coords[0]=(this.x+Math.cos(angle)*this.w);coords[1]=(this.y+Math.sin(angle)*this.h);if(this.affine!==null){this.affine.transform(coords,0,coords,0,1);}
- return 0;}
- if(this.index>this.arcSegs){if(this.index===this.arcSegs+this.lineSegs){return 4;}
- coords[0]=this.x;coords[1]=this.y;if(this.affine!==null){this.affine.transform(coords,0,coords,0,1);}
- return 1;}
- angle+=this.increment*(this.index-1);var relx=Math.cos(angle);var rely=Math.sin(angle);coords[0]=(this.x+(relx-this.cv*rely)*this.w);coords[1]=(this.y+(rely+this.cv*relx)*this.h);angle+=this.increment;relx=Math.cos(angle);rely=Math.sin(angle);coords[2]=(this.x+(relx+this.cv*rely)*this.w);coords[3]=(this.y+(rely-this.cv*relx)*this.h);coords[4]=(this.x+relx*this.w);coords[5]=(this.y+rely*this.h);if(this.affine!==null){this.affine.transform(coords,0,coords,0,3);}
- return 3;};this.currentSegment=function(coords){if(this.isDone()){}
- var angle=this.angStRad;if(this.index===0){coords[0]=this.x+Math.cos(angle)*this.w;coords[1]=this.y+Math.sin(angle)*this.h;if(this.affine!==null){this.affine.transform(coords,0,coords,0,1);}
- return 0;}
- if(this.index>this.arcSegs){if(this.index===this.arcSegs+this.lineSegs){return 4;}
- coords[0]=this.x;coords[1]=this.y;if(this.affine!==null){this.affine.transform(coords,0,coords,0,1);}
- return 1;}
- angle+=this.increment*(this.index-1);var relx=Math.cos(angle);var rely=Math.sin(angle);coords[0]=this.x+(relx-this.cv*rely)*this.w;coords[1]=this.y+(rely+this.cv*relx)*this.h;angle+=this.increment;relx=Math.cos(angle);rely=Math.sin(angle);coords[2]=this.x+(relx+this.cv*rely)*this.w;coords[3]=this.y+(rely-this.cv*relx)*this.h;coords[4]=this.x+relx*this.w;coords[5]=this.y+rely*this.h;if(this.affine!==null){this.affine.transform(coords,0,coords,0,3);}
- return 3;};};armyc2.c2sd.graphics2d.ArcIterator.btan=function(increment){increment/=2.0;return 1.3333333333333333*Math.sin(increment)/(1.0+Math.cos(increment));};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.QuadCurve2D=function(){}
- armyc2.c2sd.graphics2d.QuadCurve2D.getFlatnessSq2=function(x1,y1,ctrlx,ctrly,x2,y2){return armyc2.c2sd.graphics2d.Line2D.ptSegDistSq(x1,y1,x2,y2,ctrlx,ctrly);};armyc2.c2sd.graphics2d.QuadCurve2D.getFlatnessSq=function(coords,offset){return armyc2.c2sd.graphics2d.Line2D.ptSegDistSq(coords[offset+0],coords[offset+1],coords[offset+4],coords[offset+5],coords[offset+2],coords[offset+3]);};armyc2.c2sd.graphics2d.QuadCurve2D.subdivide=function(src,srcoff,left,leftoff,right,rightoff){var x1=src[srcoff+0];var y1=src[srcoff+1];var ctrlx=src[srcoff+2];var ctrly=src[srcoff+3];var x2=src[srcoff+4];var y2=src[srcoff+5];if(left!==null){left[leftoff+0]=x1;left[leftoff+1]=y1;}
- if(right!==null){right[rightoff+4]=x2;right[rightoff+5]=y2;}
- x1=(x1+ctrlx)/2.0;y1=(y1+ctrly)/2.0;x2=(x2+ctrlx)/2.0;y2=(y2+ctrly)/2.0;ctrlx=(x1+x2)/2.0;ctrly=(y1+y2)/2.0;if(left!==null){left[leftoff+2]=x1;left[leftoff+3]=y1;left[leftoff+4]=ctrlx;left[leftoff+5]=ctrly;}
- if(right!==null){right[rightoff+0]=ctrlx;right[rightoff+1]=ctrly;right[rightoff+2]=x2;right[rightoff+3]=y2;}};armyc2.c2sd.graphics2d.QuadCurve2D.solveQuadratic=function(eqn){return armyc2.c2sd.graphics2d.QuadCurve2D.solveQuadratic2(eqn,eqn);};armyc2.c2sd.graphics2d.QuadCurve2D.solveQuadratic2=function(eqn,res){var a=eqn[2];var b=eqn[1];var c=eqn[0];var roots=0;if(a===0.0){if(b===0.0){return-1;}
- res[roots++]=-c/b;}else{var d=b*b-4.0*a*c;if(d<0.0){return 0;}
- d=Math.sqrt(d);if(b<0.0){d=-d;}
- var q=(b+d)/-2.0;res[roots++]=q/a;if(q!==0.0){res[roots++]=c/q;}}
- return roots;};armyc2.c2sd.graphics2d.QuadCurve2D.BELOW=-2;armyc2.c2sd.graphics2d.QuadCurve2D.LOWEDGE=-1;armyc2.c2sd.graphics2d.QuadCurve2D.INSIDE=0;armyc2.c2sd.graphics2d.QuadCurve2D.HIGHEDGE=1;armyc2.c2sd.graphics2d.QuadCurve2D.ABOVE=2;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.CubicCurve2D=function()
- {}
- armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq2=function(x1,y1,ctrlx1,ctrly1,ctrlx2,ctrly2,x2,y2){return Math.max(armyc2.c2sd.graphics2d.Line2D.ptSegDistSq(x1,y1,x2,y2,ctrlx1,ctrly1),armyc2.c2sd.graphics2d.Line2D.ptSegDistSq(x1,y1,x2,y2,ctrlx2,ctrly2));};armyc2.c2sd.graphics2d.CubicCurve2D.getFlatness=function(x1,y1,ctrlx1,ctrly1,ctrlx2,ctrly2,x2,y2){return Math.sqrt(armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq2(x1,y1,ctrlx1,ctrly1,ctrlx2,ctrly2,x2,y2));};armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq=function(coords,offset){return armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq2(coords[offset+0],coords[offset+1],coords[offset+2],coords[offset+3],coords[offset+4],coords[offset+5],coords[offset+6],coords[offset+7]);};armyc2.c2sd.graphics2d.CubicCurve2D.getFlatness2=function(coords,offset){return armyc2.c2sd.graphics2d.CubicCurve2D.getFlatness(coords[offset+0],coords[offset+1],coords[offset+2],coords[offset+3],coords[offset+4],coords[offset+5],coords[offset+6],coords[offset+7]);};armyc2.c2sd.graphics2d.CubicCurve2D.subdivide=function(src,srcoff,left,leftoff,right,rightoff){var x1=src[srcoff+0];var y1=src[srcoff+1];var ctrlx1=src[srcoff+2];var ctrly1=src[srcoff+3];var ctrlx2=src[srcoff+4];var ctrly2=src[srcoff+5];var x2=src[srcoff+6];var y2=src[srcoff+7];if(left!==null){left[leftoff+0]=x1;left[leftoff+1]=y1;}
- if(right!==null){right[rightoff+6]=x2;right[rightoff+7]=y2;}
- x1=(x1+ctrlx1)/2.0;y1=(y1+ctrly1)/2.0;x2=(x2+ctrlx2)/2.0;y2=(y2+ctrly2)/2.0;var centerx=(ctrlx1+ctrlx2)/2.0;var centery=(ctrly1+ctrly2)/2.0;ctrlx1=(x1+centerx)/2.0;ctrly1=(y1+centery)/2.0;ctrlx2=(x2+centerx)/2.0;ctrly2=(y2+centery)/2.0;centerx=(ctrlx1+ctrlx2)/2.0;centery=(ctrly1+ctrly2)/2.0;if(left!==null){left[leftoff+2]=x1;left[leftoff+3]=y1;left[leftoff+4]=ctrlx1;left[leftoff+5]=ctrly1;left[leftoff+6]=centerx;left[leftoff+7]=centery;}
- if(right!==null){right[rightoff+0]=centerx;right[rightoff+1]=centery;right[rightoff+2]=ctrlx2;right[rightoff+3]=ctrly2;right[rightoff+4]=x2;right[rightoff+5]=y2;}};armyc2.c2sd.graphics2d.CubicCurve2D.solveCubic=function(eqn){return armyc2.c2sd.graphics2d.CubicCurve2D.solveCubic2(eqn,eqn);};armyc2.c2sd.graphics2d.CubicCurve2D.solveCubic2=function(eqn,res){var d=eqn[3];if(d===0.0){return armyc2.c2sd.graphics2d.QuadCurve2D.solveQuadratic2(eqn,res);}
- var a=eqn[2]/d;var b=eqn[1]/d;var c=eqn[0]/d;var roots=0;var Q=(a*a-3.0*b)/9.0;var R=(2.0*a*a*a-9.0*a*b+27.0*c)/54.0;var R2=R*R;var Q3=Q*Q*Q;a=a/3.0;if(R2<Q3){var theta=Math.acos(R/Math.sqrt(Q3));Q=-2.0*Math.sqrt(Q);if(res===eqn){eqn=Clazz.newArray(4,0);System.arraycopy(res,0,eqn,0,4);}
- res[roots++]=Q*Math.cos(theta/3.0)-a;res[roots++]=Q*Math.cos((theta+6.283185307179586)/3.0)-a;res[roots++]=Q*Math.cos((theta-6.283185307179586)/3.0)-a;armyc2.c2sd.graphics2d.CubicCurve2D.fixRoots(res,eqn);}else{var neg=(R<0.0);var S=Math.sqrt(R2-Q3);if(neg){R=-R;}
- var A=Math.pow(R+S,0.3333333333333333);if(!neg){A=-A;}
- var B=(A===0.0)?0.0:(Q/A);res[roots++]=(A+B)-a;}
- return roots;};armyc2.c2sd.graphics2d.CubicCurve2D.fixRoots=function(res,eqn){var EPSILON=1E-5;for(var i=0;i<3;i++){var t=res[i];if(Math.abs(t)<1.0E-5){res[i]=armyc2.c2sd.graphics2d.CubicCurve2D.findZero(t,0,eqn);}else if(Math.abs(t-1)<1.0E-5){res[i]=armyc2.c2sd.graphics2d.CubicCurve2D.findZero(t,1,eqn);}}};armyc2.c2sd.graphics2d.CubicCurve2D.solveEqn=function(eqn,order,t){var v=eqn[order];while(--order>=0){v=v*t+eqn[order];}
- return v;};armyc2.c2sd.graphics2d.CubicCurve2D.findZero=function(t,target,eqn){var slopeqn=[eqn[1],2*eqn[2],3*eqn[3]];var slope;var origdelta=0;var origt=t;while(true){slope=armyc2.c2sd.graphics2d.CubicCurve2D.solveEqn(slopeqn,2,t);if(slope===0){return t;}
- var y=armyc2.c2sd.graphics2d.CubicCurve2D.solveEqn(eqn,3,t);if(y===0){return t;}
- var delta=-(y/slope);if(origdelta===0){origdelta=delta;}
- if(t<target){if(delta<0)
- return t;}else if(t>target){if(delta>0)
- return t;}else{return(delta>0?(target+4.9E-324):(target-4.9E-324));}
- var newt=t+delta;if(t===newt){return t;}
- if(delta*origdelta<0){var tag=(origt<t?armyc2.c2sd.graphics2d.CubicCurve2D.getTag(target,origt,t):armyc2.c2sd.graphics2d.CubicCurve2D.getTag(target,t,origt));if(tag!==0){return(origt+t)/2;}
- t=target;}else{t=newt;}}};armyc2.c2sd.graphics2d.CubicCurve2D.getTag=function(coord,low,high){if(coord<=low){return(coord<low?-2:-1);}
- if(coord>=high){return(coord>high?2:1);}
- return 0;};armyc2.c2sd.graphics2d.CubicCurve2D.BELOW=-2;armyc2.c2sd.graphics2d.CubicCurve2D.LOWEDGE=-1;armyc2.c2sd.graphics2d.CubicCurve2D.INSIDE=0;armyc2.c2sd.graphics2d.CubicCurve2D.HIGHEDGE=1;armyc2.c2sd.graphics2d.CubicCurve2D.ABOVE=2;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.graphics2d=armyc2.c2sd.graphics2d||{};armyc2.c2sd.graphics2d.FlatteningPathIterator=function(){this.src=null;this.squareflat=0;this.limit=0;this.hold=null;this.curx=0;this.cury=0;this.movx=0;this.movy=0;this.holdType=0;this.holdEnd=0;this.holdIndex=0;this.levels=null;this.levelIndex=0;this.done=false;var limit;var src=arguments[0];var flatness=arguments[1];if(arguments.length===2)
- limit=10;if(arguments.length>2)
- limit=arguments[2];if(flatness<0.0){throw new IllegalArgumentException("flatness must be >= 0");}
- if(limit<0){throw new IllegalArgumentException("limit must be >= 0");}
- this.src=src;this.squareflat=flatness*flatness;this.limit=limit;this.levels=Clazz.newArray(limit+1,0);this.hold=Clazz.newArray(14,0);armyc2.c2sd.graphics2d.FlatteningPathIterator.next2(this,false);this.getFlatness=function(){return Math.sqrt(this.squareflat);};this.getRecursionLimit=function(){return this.limit;};this.getWindingRule=function(){return this.src.getWindingRule();};this.isDone=function(){return this.done;};this.ensureHoldCapacity=function(want){if(this.holdIndex-want<0){var have=this.hold.length-this.holdIndex;var newsize=this.hold.length+24;var newhold=Clazz.newArray(newsize,0);System.arraycopy(this.hold,this.holdIndex,newhold,this.holdIndex+24,have);this.hold=newhold;this.holdIndex+=24;this.holdEnd+=24;}};this.next=function(){this.next2(true);};this.next2=function(doNext){var level;if(this.holdIndex>=this.holdEnd){if(doNext){this.src.next();}
- if(this.src.isDone()){this.done=true;return;}
- this.holdType=this.src.currentSegment(this.hold);this.levelIndex=0;this.levels[0]=0;}
- switch(this.holdType){case 0:case 1:this.curx=this.hold[0];this.cury=this.hold[1];if(this.holdType===0){this.movx=this.curx;this.movy=this.cury;}
- this.holdIndex=0;this.holdEnd=0;break;case 4:this.curx=this.movx;this.cury=this.movy;this.holdIndex=0;this.holdEnd=0;break;case 2:if(this.holdIndex>=this.holdEnd){this.holdIndex=this.hold.length-6;this.holdEnd=this.hold.length-2;this.hold[this.holdIndex+0]=this.curx;this.hold[this.holdIndex+1]=this.cury;this.hold[this.holdIndex+2]=this.hold[0];this.hold[this.holdIndex+3]=this.hold[1];this.hold[this.holdIndex+4]=this.curx=this.hold[2];this.hold[this.holdIndex+5]=this.cury=this.hold[3];}
- level=this.levels[this.levelIndex];while(level<this.limit){if(armyc2.c2sd.graphics2d.QuadCurve2D.getFlatnessSq(this.hold,this.holdIndex)<this.squareflat){break;}
- this.ensureHoldCapacity(4);armyc2.c2sd.graphics2d.QuadCurve2D.subdivide(this.hold,this.holdIndex,this.hold,this.holdIndex-4,this.hold,this.holdIndex);this.holdIndex-=4;level++;this.levels[this.levelIndex]=level;this.levelIndex++;this.levels[this.levelIndex]=level;}
- this.holdIndex+=4;this.levelIndex--;break;case 3:if(this.holdIndex>=this.holdEnd){this.holdIndex=this.hold.length-8;this.holdEnd=this.hold.length-2;this.hold[this.holdIndex+0]=this.curx;this.hold[this.holdIndex+1]=this.cury;this.hold[this.holdIndex+2]=this.hold[0];this.hold[this.holdIndex+3]=this.hold[1];this.hold[this.holdIndex+4]=this.hold[2];this.hold[this.holdIndex+5]=this.hold[3];this.hold[this.holdIndex+6]=this.curx=this.hold[4];this.hold[this.holdIndex+7]=this.cury=this.hold[5];}
- level=this.levels[this.levelIndex];while(level<this.limit)
- {if(armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq(this.hold,this.holdIndex)<this.squareflat)
- {break;}
- this.ensureHoldCapacity(6);armyc2.c2sd.graphics2d.CubicCurve2D.subdivide(this.hold,this.holdIndex,this.hold,this.holdIndex-6,this.hold,this.holdIndex);this.holdIndex-=6;level++;this.levels[this.levelIndex]=level;this.levelIndex++;this.levels[this.levelIndex]=level;}
- this.holdIndex+=6;this.levelIndex--;break;}};this.currentSegmentFlt=function(coords){if(this.isDone()){System.out.println("flattening iterator out of bounds");return-1;}
- var type=this.holdType;if(type!==4){coords[0]=this.hold[this.holdIndex+0];coords[1]=this.hold[this.holdIndex+1];if(type!==0){type=1;}}
- return type;};this.currentSegment=function(coords){if(this.isDone()){System.out.println("flattening iterator out of bounds");return-1;}
- var type=this.holdType;if(type!==4){coords[0]=this.hold[this.holdIndex+0];coords[1]=this.hold[this.holdIndex+1];if(type!==0){type=1;}}
- return type;};};armyc2.c2sd.graphics2d.FlatteningPathIterator.next2=function(that,doNext)
- {var level;if(that.holdIndex>=that.holdEnd){if(doNext){that.src.next();}
- if(that.src.isDone()){that.done=true;return;}
- that.holdType=that.src.currentSegment(that.hold);that.levelIndex=0;that.levels[0]=0;}
- switch(that.holdType){case 0:case 1:that.curx=that.hold[0];that.cury=that.hold[1];if(that.holdType===0){that.movx=that.curx;that.movy=that.cury;}
- that.holdIndex=0;that.holdEnd=0;break;case 4:that.curx=that.movx;that.cury=that.movy;that.holdIndex=0;that.holdEnd=0;break;case 2:if(that.holdIndex>=that.holdEnd){that.holdIndex=that.hold.length-6;that.holdEnd=that.hold.length-2;that.hold[that.holdIndex+0]=that.curx;that.hold[that.holdIndex+1]=that.cury;that.hold[that.holdIndex+2]=that.hold[0];that.hold[that.holdIndex+3]=that.hold[1];that.hold[that.holdIndex+4]=that.curx=that.hold[2];that.hold[that.holdIndex+5]=that.cury=that.hold[3];}
- level=that.levels[that.levelIndex];while(level<that.limit){if(armyc2.c2sd.graphics2d.QuadCurve2D.getFlatnessSq(that.hold,that.holdIndex)<that.squareflat){break;}
- that.ensureHoldCapacity(4);armyc2.c2sd.graphics2d.QuadCurve2D.subdivide(that.hold,that.holdIndex,that.hold,that.holdIndex-4,that.hold,that.holdIndex);that.holdIndex-=4;level++;that.levels[that.levelIndex]=level;that.levelIndex++;that.levels[that.levelIndex]=level;}
- that.holdIndex+=4;that.levelIndex--;break;case 3:if(that.holdIndex>=that.holdEnd){that.holdIndex=that.hold.length-8;that.holdEnd=that.hold.length-2;that.hold[that.holdIndex+0]=that.curx;that.hold[that.holdIndex+1]=that.cury;that.hold[that.holdIndex+2]=that.hold[0];that.hold[that.holdIndex+3]=that.hold[1];that.hold[that.holdIndex+4]=that.hold[2];that.hold[that.holdIndex+5]=that.hold[3];that.hold[that.holdIndex+6]=that.curx=that.hold[4];that.hold[that.holdIndex+7]=that.cury=that.hold[5];}
- level=that.levels[that.levelIndex];while(level<that.limit){if(armyc2.c2sd.graphics2d.CubicCurve2D.getFlatnessSq(that.hold,that.holdIndex)<that.squareflat){break;}
- that.ensureHoldCapacity(6);armyc2.c2sd.graphics2d.CubicCurve2D.subdivide(that.hold,that.holdIndex,that.hold,that.holdIndex-6,that.hold,that.holdIndex);that.holdIndex-=6;level++;that.levels[that.levelIndex]=level;that.levelIndex++;that.levels[that.levelIndex]=level;}
- that.holdIndex+=6;that.levelIndex--;break;}}
- armyc2.c2sd.graphics2d.FlatteningPathIterator.GROW_SIZE=24;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.CChannelPoints2=function()
- {this.m_Line1=new armyc2.c2sd.JavaLineArray.POINT2();this.m_Line2=new armyc2.c2sd.JavaLineArray.POINT2();if(arguments.length===1)
- {this.m_Line1=new armyc2.c2sd.JavaLineArray.POINT2(arguments[0].m_Line1);this.m_Line2=new armyc2.c2sd.JavaLineArray.POINT2(arguments[0].m_Line2);}
- else if(arguments.length===2)
- {this.m_Line1=new armyc2.c2sd.JavaLineArray.POINT2(arguments[0]);this.m_Line2=new armyc2.c2sd.JavaLineArray.POINT2(arguments[1]);}};armyc2.c2sd.JavaLineArray.CChannelPoints2._className="CChannelPoints2";var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.CELineArray={CGetChannel2Double:function(lpsaUpperVBPoints,lpsaLowerVBPoints,resultVBPoints,vblUpperCounter,vblLowerCounter,vbiDrawThis,vblChannelWidth,usePtr,shapes,rev){var lResult=-1;try{lResult=armyc2.c2sd.JavaLineArray.Channels.GetChannel1Double(lpsaUpperVBPoints,lpsaLowerVBPoints,resultVBPoints,vblUpperCounter,vblLowerCounter,vbiDrawThis,vblChannelWidth,usePtr,shapes,rev);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.CELineArray._className,"CGetChannel2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CGetChannel2Double "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return lResult;},CGetLineCountDouble:function(plArrayOfLongs,lElements,lineType,ChannelWidth,rev){var lResult=0;try{var lPtrcntr=0;var lLowerFlotCount=0;var lUpperFlotCount=0;var pLinePoints=new Array(lElements);var pLowerLinePoints=new Array(lElements);var pUpperLinePoints=new Array(lElements);var pUpperLowerLinePoints=new Array(2*lElements+2);var i=0;if(lElements<=0){return-1;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pUpperLinePoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLowerLinePoints);for(i=0;i<lElements;i++){pLinePoints[i].x=plArrayOfLongs[lPtrcntr];lPtrcntr++;pLinePoints[i].y=plArrayOfLongs[lPtrcntr];lPtrcntr++;}
- for(i=0;i<lElements;i++){pLowerLinePoints[i]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i]);pUpperLinePoints[i]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i]);}
- switch(lineType){case 231113001:case 231113002:case 231113003:lResult=2*lElements;break;case 22521100:case 22521410:case 22521411:case 22320000:case 22320001:case 22521200:case 22521420:case 22521421:lResult=2*lElements+8;break;case 21700000:lResult=2*lElements+8;break;case 21710000:lResult=2*lElements+17;break;case 22521300:lResult=2*lElements+19;break;case 22123000:pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(1,pUpperLinePoints,1,lElements,lineType,ChannelWidth);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(1,pLowerLinePoints,0,lElements,lineType,ChannelWidth);lUpperFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pUpperLinePoints,lElements);lLowerFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pLowerLinePoints,lElements);lResult=lUpperFlotCount+lLowerFlotCount;break;default:lResult=armyc2.c2sd.JavaLineArray.countsupport.GetCountersDouble(lineType,lElements,pLinePoints,null,rev);break;}
- pLinePoints=null;pLowerLinePoints=null;pUpperLinePoints=null;pUpperLowerLinePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.CELineArray._className,"CGetLineCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CGetLineCount "+Integer.toString(lineType),exc));}else{throw exc;}}
- return(lResult);},CGetLinetypeFromString:function(strLine,rev){try{var str1;var str2;var str3;var str4;var str5;var str6;var str7;var str10;var c0=strLine.substring(0,1);var c1=strLine.substring(1,2);var c2=strLine.substring(2,3);str1=strLine.substring(4,5);str2=strLine.substring(4,6);str3=strLine.substring(4,7);str4=strLine.substring(4,8);str5=strLine.substring(4,9);str6=strLine.substring(3,9);str7=strLine.substring(3,10);str10=strLine.substring(3,13);if(strLine.equalsIgnoreCase("BS_LINE--------"))
- return 10000000;if(strLine.equalsIgnoreCase("BS_AREA--------"))
- return 11000000;if(strLine.equalsIgnoreCase("BS_CROSS-------"))
- return 12000000;if(strLine.equalsIgnoreCase("BS_ELLIPSE-----"))
- return 13000000;if(strLine.equalsIgnoreCase("BS_RECTANGLE---"))
- return 14000000;if(strLine.equalsIgnoreCase("BBS_LINE-------"))
- return 15000000;if(strLine.equalsIgnoreCase("BBS_AREA-------"))
- return 15000001;if(strLine.equalsIgnoreCase("BBS_POINT------"))
- return 15000002;if(strLine.equalsIgnoreCase("BBS_RECTANGLE--"))
- return 15000003;if(strLine.equalsIgnoreCase("BS_BBOX--------"))
- return 15000004;if(c0.equals("W")&&c1.equals("A")){if(str7.equals("DPXSQ--")){return 31143000;}
- if(str7.equals("DPFC---")){return 31131000;}
- if(str7.equals("DPFC-FG")){return 31131200;}
- if(str7.equals("DPFC-FY")){return 31131300;}
- if(str7.equals("DPFW-FG")){return 31132200;}
- if(str7.equals("DPFW-FY")){return 31132300;}
- if(str7.equals("DPFOU--")){return 31133100;}
- if(str7.equals("DPFO-FY")){return 31133200;}
- if(str7.equals("DPFSU--")){return 31134100;}
- if(str7.equals("DPFS-FG")){return 31134200;}
- if(str7.equals("DPFS-FY")){return 31134300;}
- if(str7.equals("DPXIL--")){return 31144000;}
- if(str7.equals("DPXSH--")){return 31145000;}
- if(str7.equals("DPXITCZ")){return 31146000;}
- if(str7.equals("DPXCV--")){return 31147000;}
- if(str7.equals("DPXITD-")){return 31148000;}
- if(str7.equals("DWJ----")){return 31430000;}
- if(str7.equals("DWS----")){return 31440000;}
- if(str7.equals("DBAIF--")){return 31710000;}
- if(str7.equals("DBAMV--")){return 31720000;}
- if(str7.equals("DBATB--")){return 31730000;}
- if(str7.equals("DBAI---")){return 31740000;}
- if(str7.equals("DBALPNC")){return 31750000;}
- if(str7.equals("DBALPC-")){return 31751000;}
- if(str7.equals("DBAFP--")){return 31760000;}
- if(str7.equals("DBAT---")){return 31770000;}
- if(str7.equals("DBAFG--")){return 31780000;}
- if(str7.equals("DBAD---")){return 31790000;}
- if(str7.equals("DBAFF--")){return 317100000;}
- if(str7.equals("DIPIB--")){return 31810000;}
- if(str7.equals("DIPCO--")){return 31820000;}
- if(str7.equals("DIPIS--")){return 31830000;}
- if(str7.equals("DIPIT--")){return 31840000;}
- if(str7.equals("DIPID--")){return 31850000;}
- if(str7.equals("DIPTH--")){return 31860000;}
- if(str7.equals("DIPFF--")){return 31870000;}
- if(str3.equals("PXR")){return 31142000;}
- if(str3.equals("PXT")){return 31141000;}
- if(str4.equals("PFCU")){return 31131100;}
- if(str3.equals("PFO")){return 31133000;}
- if(str3.equals("PFS")){return 31134000;}
- if(str4.equals("PFWU")){return 31132100;}
- if(str3.equals("PFW")){return 31132000;}
- if(str3.equals("PFC")){return 31131000;}}
- if(c0.equals("W")&&c1.equals("O")){if(str10.equals("DHCF----L-")){return 32225100;}
- if(str10.equals("DHCF-----A")){return 32225200;}
- if(str10.equals("DHPBA---L-")){return 32231400;}
- if(str10.equals("DHPBA----A")){return 32231500;}
- if(str10.equals("DHPMO---L-")){return 32233400;}
- if(str10.equals("DHPMO----A")){return 32233500;}}
- if(c0.equals("W")&&c1.equals("O")){if(str7.equals("DIDID--")){return 32134000;}
- if(str7.equals("DILOV--")){return 32151000;}
- if(str7.equals("DILUC--")){return 32152000;}
- if(str7.equals("DILOR--")){return 32153000;}
- if(str7.equals("DILIEO-")){return 32154000;}
- if(str7.equals("DILIEE-")){return 32155000;}
- if(str7.equals("DILIER-")){return 32156000;}
- if(str7.equals("DIOC---")){return 32161000;}
- if(str7.equals("DIOCS--")){return 32162000;}
- if(str7.equals("DIOL---")){return 32163000;}
- if(str7.equals("DIOLF--")){return 32164000;}
- if(str7.equals("DHDDL--")){return 32212000;}
- if(str7.equals("DHDDC--")){return 32213000;}
- if(str7.equals("DHDDA--")){return 32214000;}
- if(str7.equals("DHCC---")){return 32221000;}
- if(str7.equals("DHCI---")){return 32222000;}
- if(str7.equals("DHCB---")){return 32223000;}
- if(str7.equals("DHCW---")){return 32224000;}
- if(str7.equals("DHPBP--")){return 32231700;}
- if(str7.equals("-HPFF--")){return 32232400;}
- if(str7.equals("-HHDR--")){return 322510000;}
- if(str7.equals("DHPMD--")){return 32233100;}
- if(str7.equals("DHPMRA-")){return 32233600;}
- if(str7.equals("DHPMRB-")){return 32233700;}
- if(str7.equals("DHPSPA-")){return 32234100;}
- if(str7.equals("DHPSPB-")){return 32234200;}
- if(str7.equals("DHPSPS-")){return 32234300;}
- if(str7.equals("DHABP--")){return 32244200;}
- if(str7.equals("DHALLA-")){return 32246000;}
- if(str7.equals("DHHD---")){return 32253000;}
- if(str7.equals("DHHDF--")){return 32254200;}
- if(str7.equals("DHHDK--")){return 32255200;}
- if(str7.equals("DHHDB--")){return 32259000;}
- if(str7.equals("DHHDD--")){return 322512000;}
- if(str7.equals("DTCCCFE")){return 32272000;}
- if(str7.equals("DTCCCFF")){return 32273000;}
- if(str7.equals("DL-RA--")){return 32530000;}
- if(str7.equals("DMPA---")){return 32680000;}
- if(str7.equals("DL-TA--")){return 32550000;}
- if(str7.equals("DOBVA--")){return 32311000;}
- if(str7.equals("DOBVB--")){return 32312000;}
- if(str7.equals("DOBVC--")){return 32313000;}
- if(str7.equals("DOBVD--")){return 32314000;}
- if(str7.equals("DOBVE--")){return 32315000;}
- if(str7.equals("DOBVF--")){return 32316000;}
- if(str7.equals("DOBVG--")){return 32317000;}
- if(str7.equals("DOBVH--")){return 32318000;}
- if(str7.equals("DOBVI--")){return 32319000;}
- if(str7.equals("DBSF---")){return 32321000;}
- if(str7.equals("DBSG---")){return 32322000;}
- if(str7.equals("DBSM---")){return 32323000;}
- if(str7.equals("DBST---")){return 32324000;}
- if(str7.equals("DGMSR--")){return 32411100;}
- if(str7.equals("DGMSC--")){return 32411200;}
- if(str7.equals("DGMSSVS")){return 32411300;}
- if(str7.equals("DGMSSC-")){return 32411400;}
- if(str7.equals("DGMSSM-")){return 32411500;}
- if(str7.equals("DGMSSF-")){return 32411600;}
- if(str7.equals("DGMSSVF")){return 32411700;}
- if(str7.equals("DGMSIVF")){return 32411800;}
- if(str7.equals("DGMSIF-")){return 32411900;}
- if(str7.equals("DGMSIM-")){return 324111000;}
- if(str7.equals("DGMSIC-")){return 324111100;}
- if(str7.equals("DGMSB--")){return 324111200;}
- if(str7.equals("DGMS-CO")){return 324111300;}
- if(str7.equals("DGMS-PH")){return 324111400;}
- if(str7.equals("DGMS-SH")){return 324111500;}
- if(str7.equals("DGML---")){return 324111600;}
- if(str7.equals("DGMN---")){return 324111700;}
- if(str7.equals("DGMRS--")){return 32412100;}
- if(str7.equals("DGMRM--")){return 32412200;}
- if(str7.equals("DGMRR--")){return 32412300;}
- if(str7.equals("DGMCL--")){return 32413100;}
- if(str7.equals("DGMCM--")){return 32413200;}
- if(str7.equals("DGMCH--")){return 32413300;}
- if(str7.equals("DGMIBA-")){return 32414100;}
- if(str7.equals("DGMIBB-")){return 32414200;}
- if(str7.equals("DGMIBC-")){return 32414300;}
- if(str7.equals("DGMIBD-")){return 32414400;}
- if(str7.equals("DGMIBE-")){return 32414500;}
- if(str7.equals("DGMBCA-")){return 32415100;}
- if(str7.equals("DGMBCB-")){return 32415200;}
- if(str7.equals("DGMBCC-")){return 32415300;}
- if(str7.equals("DGMBTA-")){return 32416100;}
- if(str7.equals("DGMBTB-")){return 32416200;}
- if(str7.equals("DGMBTC-")){return 32416300;}
- if(str7.equals("DGMBTD-")){return 32416400;}
- if(str7.equals("DGMBTE-")){return 32416500;}
- if(str7.equals("DGMBTF-")){return 32416600;}
- if(str7.equals("DGMBTG-")){return 32416700;}
- if(str7.equals("DGMBTH-")){return 32416800;}
- if(str7.equals("DGMBTI-")){return 32416900;}
- if(str7.equals("DL-SA--")){return 32540000;}
- if(str7.equals("DMOA---")){return 32670000;}
- if(str7.equals("DMCC---")){return 32620000;}
- if(str7.equals("DMCA---")){return 32610000;}
- if(str7.equals("DL-ML--")){return 32510000;}
- if(str7.equals("DL-MA--")){return 32520000;}
- if(str7.equals("DMCD---")){return 32630000;}
- if(str7.equals("DL-O---")){return 32560000;}}
- if(str5.equals("OLAGS")&&c0.equals("G")&&c2.equals("G")){return 22521420;}
- if(str5.equals("OLAGM")&&c0.equals("G")&&c2.equals("G")){return 22521410;}
- if(str5.equals("OLKGM")&&c0.equals("G")&&c2.equals("G")){return 22522210;}
- if(str5.equals("OLKGS")&&c0.equals("G")&&c2.equals("G")){return 22522220;}
- if(str4.equals("OLAA")&&c0.equals("G")&&c2.equals("G")){return 22521200;}
- if(str4.equals("OLAR")&&c0.equals("G")&&c2.equals("G")){return 22521300;}
- if(str4.equals("OLKA")&&c0.equals("G")&&c2.equals("G")){return 22522100;}
- if(str4.equals("OLAV")&&c0.equals("G")&&c2.equals("G")){return 22521100;}
- if(str4.equals("OADU")&&c0.equals("G")&&c2.equals("M")){return 23131100;}
- if(str4.equals("OADC")&&c0.equals("G")&&c2.equals("M")){return 23131200;}
- if(str4.equals("AAML")&&c0.equals("G")&&c2.equals("G")){return 22234100;}
- if(str4.equals("AAMH")&&c0.equals("G")&&c2.equals("G")){return 22234200;}
- if(str4.equals("DABP")&&c0.equals("G")&&c2.equals("G")){return 22431100;}
- if(str4.equals("OWCT")&&c0.equals("G")&&c2.equals("M")){return 231117300;}
- if(str4.equals("OWCD")&&c0.equals("G")&&c2.equals("M")){return 231117200;}
- if(str4.equals("OWCS")&&c0.equals("G")&&c2.equals("M")){return 231117100;}
- if(str4.equals("ACPR")&&c0.equals("G")&&c2.equals("F")){return 24326101;}
- if(str4.equals("ACSI")&&c0.equals("G")&&c2.equals("F")){return 24321100;}
- if(str4.equals("ACSR")&&c0.equals("G")&&c2.equals("F")){return 24321200;}
- if(str4.equals("ACSC")&&c0.equals("G")&&c2.equals("F")){return 24321300;}
- if(str4.equals("ACAI")&&c0.equals("G")&&c2.equals("F")){return 24322100;}
- if(str4.equals("ACAR")&&c0.equals("G")&&c2.equals("F")){return 24322200;}
- if(str4.equals("ACAC")&&c0.equals("G")&&c2.equals("F")){return 24322300;}
- if(str4.equals("ACFI")&&c0.equals("G")&&c2.equals("F")){return 24323100;}
- if(str4.equals("ACFR")&&c0.equals("G")&&c2.equals("F")){return 24323200;}
- if(str4.equals("ACFC")&&c0.equals("G")&&c2.equals("F")){return 24323300;}
- if(str4.equals("ACNI")&&c0.equals("G")&&c2.equals("F")){return 24324100;}
- if(str4.equals("ACNR")&&c0.equals("G")&&c2.equals("F")){return 24324200;}
- if(str4.equals("ACNC")&&c0.equals("G")&&c2.equals("F")){return 24324300;}
- if(str4.equals("ACRI")&&c0.equals("G")&&c2.equals("F")){return 24325100;}
- if(str4.equals("ACRR")&&c0.equals("G")&&c2.equals("F")){return 24325200;}
- if(str4.equals("ACRC")&&c0.equals("G")&&c2.equals("F")){return 24325300;}
- if(str4.equals("ACPC")&&c0.equals("G")&&c2.equals("F")){return 24326200;}
- if(str4.equals("AZII")&&c0.equals("G")&&c2.equals("F")){return 24331100;}
- if(str4.equals("AZIR")&&c0.equals("G")&&c2.equals("F")){return 24331200;}
- if(str4.equals("AZIC")&&c0.equals("G")&&c2.equals("F")){return 24331300;}
- if(str4.equals("AZXI")&&c0.equals("G")&&c2.equals("F")){return 24332100;}
- if(str4.equals("AZXR")&&c0.equals("G")&&c2.equals("F")){return 24332200;}
- if(str4.equals("AZXC")&&c0.equals("G")&&c2.equals("F")){return 24332300;}
- if(str4.equals("AZSI")&&c0.equals("G")&&c2.equals("F")){return 24333100;}
- if(str4.equals("ACEI")&&c0.equals("G")&&c2.equals("F")){return 24333100;}
- if(str4.equals("AZSR")&&c0.equals("G")&&c2.equals("F")){return 24333200;}
- if(str4.equals("ACER")&&c0.equals("G")&&c2.equals("F")){return 24333200;}
- if(str4.equals("AZSC")&&c0.equals("G")&&c2.equals("F")){return 24333300;}
- if(str4.equals("ACEC")&&c0.equals("G")&&c2.equals("F")){return 24333300;}
- if(str4.equals("AZCI")&&c0.equals("G")&&c2.equals("F")){return 24334100;}
- if(str4.equals("AZCR")&&c0.equals("G")&&c2.equals("F")){return 24334200;}
- if(str4.equals("AZCC")&&c0.equals("G")&&c2.equals("F")){return 24334300;}
- if(str4.equals("AZDI")&&c0.equals("G")&&c2.equals("F")){return 24335100;}
- if(str4.equals("ACDI")&&c0.equals("G")&&c2.equals("F")){return 24335100;}
- if(str4.equals("AZDR")&&c0.equals("G")&&c2.equals("F")){return 24335200;}
- if(str4.equals("ACDR")&&c0.equals("G")&&c2.equals("F")){return 24335200;}
- if(str4.equals("AZDC")&&c0.equals("G")&&c2.equals("F")){return 24335300;}
- if(str4.equals("ACDC")&&c0.equals("G")&&c2.equals("F")){return 24335300;}
- if(str4.equals("ACFZ")&&c0.equals("G")&&c2.equals("F")){return 24336100;}
- if(str4.equals("AZFI")&&c0.equals("G")&&c2.equals("F")){return 24336100;}
- if(str4.equals("AZFR")&&c0.equals("G")&&c2.equals("F")){return 24336200;}
- if(str4.equals("AZFC")&&c0.equals("G")&&c2.equals("F")){return 24336300;}
- if(str4.equals("AZZI")&&c0.equals("G")&&c2.equals("F")){return 24337100;}
- if(str4.equals("AZOR")&&c0.equals("G")&&c2.equals("F")){return 24337100;}
- if(str4.equals("ACZI")&&c0.equals("G")&&c2.equals("F")){return 24337100;}
- if(str4.equals("AZZR")&&c0.equals("G")&&c2.equals("F")){return 24337200;}
- if(str4.equals("ACZR")&&c0.equals("G")&&c2.equals("F")){return 24337200;}
- if(str4.equals("AZZC")&&c0.equals("G")&&c2.equals("F")){return 24337300;}
- if(str4.equals("ACZC")&&c0.equals("G")&&c2.equals("F")){return 24337300;}
- if(str4.equals("AZBI")&&c0.equals("G")&&c2.equals("F")){return 24338100;}
- if(str4.equals("ATBA")&&c0.equals("G")&&c2.equals("F")){return 24338100;}
- if(str4.equals("ACBI")&&c0.equals("G")&&c2.equals("F")){return 24338100;}
- if(str4.equals("AZBR")&&c0.equals("G")&&c2.equals("F")){return 24338200;}
- if(str4.equals("ACBR")&&c0.equals("G")&&c2.equals("F")){return 24338200;}
- if(str4.equals("AZBC")&&c0.equals("G")&&c2.equals("F")){return 24338300;}
- if(str4.equals("ACBC")&&c0.equals("G")&&c2.equals("F")){return 24338300;}
- if(str4.equals("AZVI")&&c0.equals("G")&&c2.equals("F")){return 24339100;}
- if(str4.equals("ACVI")&&c0.equals("G")&&c2.equals("F")){return 24339100;}
- if(str4.equals("AZVR")&&c0.equals("G")&&c2.equals("F")){return 24339200;}
- if(str4.equals("ACVR")&&c0.equals("G")&&c2.equals("F")){return 24339200;}
- if(str4.equals("AZVC")&&c0.equals("G")&&c2.equals("F")){return 24339300;}
- if(str4.equals("ACVC")&&c0.equals("G")&&c2.equals("F")){return 24339300;}
- if(str4.equals("AKBI")&&c0.equals("G")&&c2.equals("F")){return 24351000;}
- if(str4.equals("AKBR")&&c0.equals("G")&&c2.equals("F")){return 24352000;}
- if(str4.equals("AKBC")&&c0.equals("G")&&c2.equals("F")){return 24353000;}
- if(str4.equals("AKPI")&&c0.equals("G")&&c2.equals("F")){return 24361000;}
- if(str4.equals("AKPR")&&c0.equals("G")&&c2.equals("F")){return 24362000;}
- if(str4.equals("AKPC")&&c0.equals("G")&&c2.equals("F")){return 24363000;}
- if(str3.equals("LCR")&&c0.equals("G")&&c2.equals("F")){return 24240000;}
- if(str3.equals("LCN")&&c0.equals("G")&&c2.equals("F")){return 24230000;}
- if(str3.equals("LCM")&&c0.equals("G")&&c2.equals("F")){return 24225000;}
- if(str3.equals("LCC")&&c0.equals("G")&&c2.equals("F")){return 24220000;}
- if(str3.equals("LCF")&&c0.equals("G")&&c2.equals("F")){return 24210000;}
- if(str3.equals("LTS")&&c0.equals("G")&&c2.equals("F")){return 24211000;}
- if(str3.equals("AXC")&&c0.equals("G")&&c2.equals("F")){return 243111000;}
- if(str3.equals("AXS")&&c0.equals("G")&&c2.equals("F")){return 243112000;}
- if(str3.equals("LTF")&&c0.equals("G")&&c2.equals("F")){return 24260000;}
- if(str3.equals("OWS")&&c0.equals("G")&&c2.equals("M")){return 231112000;}
- if(str3.equals("OWD")&&c0.equals("G")&&c2.equals("M")){return 231113000;}
- if(str3.equals("OWA")&&c0.equals("G")&&c2.equals("M")){return 231114000;}
- if(str3.equals("OWU")&&c0.equals("G")&&c2.equals("M")){return 231111000;}
- if(str3.equals("OWL")&&c0.equals("G")&&c2.equals("M")){return 231115000;}
- if(str3.equals("OWH")&&c0.equals("G")&&c2.equals("M")){return 231116000;}
- if(str3.equals("OAR")&&c0.equals("G")&&c2.equals("M")){return 23132000;}
- if(str3.equals("OGB")&&c0.equals("G")&&c2.equals("M")){return 23111000;}
- if(str3.equals("OAW")&&c0.equals("G")&&c2.equals("M")){return 23134000;}
- if(str3.equals("SLA")&&c0.equals("G")&&c2.equals("G")){return 22611000;}
- if(str3.equals("AAR")&&c0.equals("G")&&c2.equals("G")){return 22231000;}
- if(str3.equals("OLI")&&c0.equals("G")&&c2.equals("G")){return 22524000;}
- if(str3.equals("ORP")&&c0.equals("G")&&c2.equals("M")){return 23191000;}
- if(str3.equals("ORS")&&c0.equals("G")&&c2.equals("M")){return 23192000;}
- if(str3.equals("ORA")&&c0.equals("G")&&c2.equals("M")){return 23193000;}
- if(str3.equals("ORC")&&c0.equals("G")&&c2.equals("M")){return 23194000;}
- if(str3.equals("OLP")&&c0.equals("G")&&c2.equals("G")){return 22528000;}
- if(str3.equals("BDD")&&c0.equals("G")&&c2.equals("M")){return 23212000;}
- if(str3.equals("BDI")&&c0.equals("G")&&c2.equals("M")){return 23213000;}
- if(str3.equals("BDE")&&c0.equals("G")&&c2.equals("M")){return 23211000;}
- if(str3.equals("GLF")&&c0.equals("G")&&c2.equals("G")){return 22122000;}
- if(str3.equals("GLC")&&c0.equals("G")&&c2.equals("G")){return 22123000;}
- if(str3.equals("OLC")&&c0.equals("G")&&c2.equals("G")){return 22527000;}
- if(str3.equals("OGZ")&&c0.equals("G")&&c2.equals("M")){return 23113000;}
- if(str3.equals("SAE")&&c0.equals("G")&&c2.equals("G")){return 22624000;}
- if(str3.equals("DAB")&&c0.equals("G")&&c2.equals("G")){return 22431000;}
- if(str3.equals("GAA")&&c0.equals("G")&&c2.equals("G")){return 22132000;}
- if(str3.equals("SAT")&&c0.equals("G")&&c2.equals("G")){return 22626000;}
- if(str3.equals("ASB")&&c0.equals("G")&&c2.equals("S")){return 25351000;}
- if(str3.equals("ASD")&&c0.equals("G")&&c2.equals("S")){return 25352000;}
- if(str3.equals("GAE")&&c0.equals("G")&&c2.equals("G")){return 22133000;}
- if(str3.equals("SAN")&&c0.equals("G")&&c2.equals("G")){return 22625000;}
- if(str3.equals("GAF")&&c0.equals("G")&&c2.equals("G")){return 22134000;}
- if(str3.equals("OGR")&&c0.equals("G")&&c2.equals("M")){return 23115000;}
- if(str3.equals("OGF")&&c0.equals("G")&&c2.equals("M")){return 23114000;}
- if(str3.equals("GAP")&&c0.equals("G")&&c2.equals("G")){return 22138000;}
- if(str3.equals("GAL")&&c0.equals("G")&&c2.equals("G")){return 22137000;}
- if(str3.equals("GAD")&&c0.equals("G")&&c2.equals("G")){return 22135000;}
- if(str3.equals("AAF")&&c0.equals("G")&&c2.equals("G")){return 22232000;}
- if(str3.equals("AAM")&&c0.equals("G")&&c2.equals("G")){return 22234000;}
- if(str3.equals("AAW")&&c0.equals("G")&&c2.equals("G")){return 22235000;}
- if(str3.equals("DLF")&&c0.equals("G")&&c2.equals("G")){return 22421000;}
- if(str3.equals("ALS")&&c0.equals("G")&&c2.equals("G")){return 22223000;}
- if(str3.equals("ALL")&&c0.equals("G")&&c2.equals("G")){return 22225000;}
- if(str3.equals("ALC")&&c0.equals("G")&&c2.equals("G")){return 22221000;}
- if(str3.equals("ALM")&&c0.equals("G")&&c2.equals("G")){return 22222000;}
- if(str3.equals("ALU")&&c0.equals("G")&&c2.equals("G")){return 22224000;}
- if(str3.equals("BCF")&&c0.equals("G")&&c2.equals("M")){return 23223000;}
- if(str3.equals("BCB")&&c0.equals("G")&&c2.equals("M")){return 23222000;}
- if(str3.equals("BCA")&&c0.equals("G")&&c2.equals("M")){return 23221000;}
- if(str3.equals("OFG")&&c0.equals("G")&&c2.equals("M")){return 23163000;}
- if(str3.equals("OHO")&&c0.equals("G")&&c2.equals("M")){return 23200000;}
- if(str3.equals("BCE")&&c0.equals("G")&&c2.equals("M")){return 23224000;}
- if(str3.equals("BCL")&&c0.equals("G")&&c2.equals("M")){return 23226000;}
- if(str3.equals("BCR")&&c0.equals("G")&&c2.equals("M")){return 23227000;}
- if(str3.equals("OED")&&c0.equals("G")&&c2.equals("M")){return 23174000;}
- if(str3.equals("LRM")&&c0.equals("G")&&c2.equals("S")){return 25221000;}
- if(str3.equals("LRA")&&c0.equals("G")&&c2.equals("S")){return 25222000;}
- if(str3.equals("GLL")&&c0.equals("G")&&c2.equals("G")){return 22125000;}
- if(str3.equals("OLT")&&c0.equals("G")&&c2.equals("G")){return 22526000;}
- if(str3.equals("GLP")&&c0.equals("G")&&c2.equals("G")){return 22124000;}
- if(str3.equals("OLF")&&c0.equals("G")&&c2.equals("G")){return 22523000;}
- if(str3.equals("OLL")&&c0.equals("G")&&c2.equals("G")){return 22525000;}
- if(str3.equals("SLB")&&c0.equals("G")&&c2.equals("G")){return 22623000;}
- if(str3.equals("OEF")&&c0.equals("G")&&c2.equals("M")){return 23172000;}
- if(str3.equals("OEB")&&c0.equals("G")&&c2.equals("M")){return 23171000;}
- if(str3.equals("LRO")&&c0.equals("G")&&c2.equals("S")){return 25223000;}
- if(str3.equals("LRT")&&c0.equals("G")&&c2.equals("S")){return 25224000;}
- if(str3.equals("LRW")&&c0.equals("G")&&c2.equals("S")){return 25225000;}
- if(str3.equals("ASR")&&c0.equals("G")&&c2.equals("S")){return 25353000;}
- if(str3.equals("GLB")&&c0.equals("G")&&c2.equals("G")){return 22121000;}
- if(str3.equals("GAG")&&c0.equals("G")&&c2.equals("G")){return 22131000;}
- if(str3.equals("GAX")&&c0.equals("G")&&c2.equals("G")){return 22136000;}
- if(str3.equals("GAZ")&&c0.equals("G")&&c2.equals("G")){return 221311000;}
- if(str3.equals("AAH")&&c0.equals("G")&&c2.equals("G")){return 22233000;}
- if(str3.equals("DAE")&&c0.equals("G")&&c2.equals("G")){return 22432000;}
- if(str3.equals("OAA")&&c0.equals("G")&&c2.equals("G")){return 22531000;}
- if(str3.equals("OAK")&&c0.equals("G")&&c2.equals("G")){return 22532000;}
- if(str3.equals("OAO")&&c0.equals("G")&&c2.equals("G")){return 22535000;}
- if(str3.equals("SAO")&&c0.equals("G")&&c2.equals("G")){return 22621000;}
- if(str3.equals("SAA")&&c0.equals("G")&&c2.equals("G")){return 22622000;}
- if(str3.equals("OAP")&&c0.equals("G")&&c2.equals("G")){return 22536000;}
- if(str3.equals("SLH")&&c0.equals("G")&&c2.equals("G")){return 22612000;}
- if(str3.equals("SLR")&&c0.equals("G")&&c2.equals("G")){return 22613000;}
- if(str3.equals("OFD")&&c0.equals("G")&&c2.equals("M")){return 23162000;}
- if(str3.equals("OFA")&&c0.equals("G")&&c2.equals("M")){return 23164000;}
- if(str3.equals("GAS")&&c0.equals("G")&&c2.equals("G")){return 22139000;}
- if(str3.equals("GAY")&&c0.equals("G")&&c2.equals("G")){return 221310000;}
- if(str3.equals("DLP")&&c0.equals("G")&&c2.equals("G")){return 22422000;}
- if(str3.equals("OAF")&&c0.equals("G")&&c2.equals("G")){return 22533000;}
- if(str3.equals("OAS")&&c0.equals("G")&&c2.equals("G")){return 22534000;}
- if(str3.equals("OMC")&&c0.equals("G")&&c2.equals("M")){return 23157000;}
- if(str3.equals("OET")&&c0.equals("G")&&c2.equals("M")){return 23173000;}
- if(str3.equals("LCM")&&c0.equals("G")&&c2.equals("S")){return 25211000;}
- if(str3.equals("LCH")&&c0.equals("G")&&c2.equals("S")){return 25212000;}
- if(str3.equals("OGL")&&c0.equals("G")&&c2.equals("M")){return 23112000;}
- if(str3.equals("BCD")&&c0.equals("G")&&c2.equals("M")){return 23225000;}
- if(str3.equals("DPT")&&c0.equals("G")&&c2.equals("G")){return 22411000;}
- if(str3.equals("ATR")&&c0.equals("G")&&c2.equals("F")){return 24311000;}
- if(str3.equals("ATC")&&c0.equals("G")&&c2.equals("F")){return 24312000;}
- if(str3.equals("ATG")&&c0.equals("G")&&c2.equals("F")){return 24313000;}
- if(str3.equals("ATS")&&c0.equals("G")&&c2.equals("F")){return 24314000;}
- if(str3.equals("ATB")&&c0.equals("G")&&c2.equals("F")){return 24315000;}
- if(str3.equals("ACT")&&c0.equals("G")&&c2.equals("F")){return 24226000;}
- if(str2.equals("OT")&&c0.equals("G")&&c2.equals("M")){return 231100000;}
- if(str2.equals("OS")&&c0.equals("G")&&c2.equals("M")){return 23120000;}
- if(str2.equals("OU")&&c0.equals("G")&&c2.equals("M")){return 23180000;}
- if(str2.equals("AD")&&c0.equals("G")&&c2.equals("S")){return 25310000;}
- if(str2.equals("AE")&&c0.equals("G")&&c2.equals("S")){return 25320000;}
- if(str2.equals("AH")&&c0.equals("G")&&c2.equals("S")){return 25340000;}
- if(str2.equals("NL")&&c0.equals("G")&&c2.equals("M")){return 23490000;}
- if(str2.equals("NR")&&c0.equals("G")&&c2.equals("M")){return 23440000;}
- if(str2.equals("NC")&&c0.equals("G")&&c2.equals("M")){return 23460000;}
- if(str2.equals("NB")&&c0.equals("G")&&c2.equals("M")){return 23450000;}
- if(str2.equals("AF")&&c0.equals("G")&&c2.equals("F")){return 24323100;}
- if(str2.equals("AA")&&c0.equals("G")&&c2.equals("F")){return 24321100;}
- if(str2.equals("AR")&&c0.equals("G")&&c2.equals("F")){return 24325100;}
- if(str2.equals("AS")&&c0.equals("G")&&c2.equals("T")){return 211210000;}
- if(str2.equals("AR")&&c0.equals("G")&&c2.equals("S")){return 25330000;}
- if(str2.equals("PA")&&c0.equals("G")&&c2.equals("G")){return 22320000;}
- if(str2.equals("PF")&&c0.equals("G")&&c2.equals("G")){return 22330000;}
- if(str2.equals("SP")&&c0.equals("G")&&c2.equals("M")){return 23350000;}
- if(str2.equals("LT")&&c0.equals("G")&&c2.equals("F")){return 24250000;}
- if(str2.equals("SL")&&c0.equals("G")&&c2.equals("M")){return 23330000;}
- if(str2.equals("LP")&&c0.equals("G")&&c2.equals("F")){return 24260000;}
- if(str2.equals("AC")&&c0.equals("G")&&c2.equals("F")){return 24322100;}
- if(str2.equals("AT")&&c0.equals("G")&&c2.equals("F")){return 24330000;}
- if(str2.equals("AK")&&c0.equals("G")&&c2.equals("F")){return 24314000;}
- if(str2.equals("AS")&&c0.equals("G")&&c2.equals("F")){return 24313000;}
- if(str2.equals("AB")&&c0.equals("G")&&c2.equals("F")){return 24315000;}
- if(str2.equals("BE")&&c0.equals("G")&&c2.equals("O")){return 26410000;}
- if(str2.equals("BA")&&c0.equals("G")&&c2.equals("O")){return 26420000;}
- if(str2.equals("BT")&&c0.equals("G")&&c2.equals("O")){return 26430000;}
- if(str2.equals("BO")&&c0.equals("G")&&c2.equals("O")){return 26440000;}
- if(str2.equals("PC")&&c0.equals("G")&&c2.equals("G")){return 2237000;}
- if(str2.equals("PN")&&c0.equals("G")&&c2.equals("G")){return 22360000;}
- if(str2.equals("UC")&&c0.equals("G")&&c2.equals("T")){if(rev==1)
- return 212230001;else
- return 212230000;}
- if(str2.equals("US")&&c0.equals("G")&&c2.equals("T")){if(rev==1)
- return 212210001;else
- return 212210000;}
- if(str2.equals("UG")&&c0.equals("G")&&c2.equals("T")){if(rev==1)
- return 212220001;else
- return 212220000;}
- if(str2.equals("PM")&&c0.equals("G")&&c2.equals("G")){return 22340000;}
- if(str2.equals("PY")&&c0.equals("G")&&c2.equals("G")){return 22350000;}
- if(str2.equals("PD")&&c0.equals("G")&&c2.equals("G")){return 22310000;}
- if(str2.equals("SW")&&c0.equals("G")&&c2.equals("M")){return 23340000;}
- if(str2.equals("KF")&&c0.equals("G")&&c2.equals("T")){return 21710000;}
- if(str2.equals("NL")&&c0.equals("G")&&c2.equals("M")){return 23490000;}
- if(str2.equals("NM")&&c0.equals("G")&&c2.equals("M")){return 23410000;}
- if(str2.equals("WP")&&c0.equals("G")&&c2.equals("T")){return 212410000;}
- if(str2.equals("HN")&&c0.equals("G")&&c2.equals("O")){return 26220000;}
- if(str2.equals("SF")&&c0.equals("G")&&c2.equals("M")){return 23320000;}
- if(str1.equals("R")&&c0.equals("G")&&c2.equals("T")){return 211800000;}
- if(str1.equals("A")&&c0.equals("G")&&c2.equals("T")){return 211200000;}
- if(str1.equals("M")&&c0.equals("G")&&c2.equals("T")){return 212000000;}
- if(str1.equals("B")&&c0.equals("G")&&c2.equals("O")){return 26400000;}
- if(str1.equals("L")&&c0.equals("G")&&c2.equals("T")){return 21800000;}
- if(str1.equals("V")&&c0.equals("G")&&c2.equals("T")){return 212500000;}
- if(str1.equals("2")&&c0.equals("G")&&c2.equals("T")){return 212600000;}
- if(str1.equals("W")&&c0.equals("G")&&c2.equals("T")){return 212400000;}
- if(str1.equals("H")&&c0.equals("G")&&c2.equals("T")){return 21200000;}
- if(str1.equals("C")&&c0.equals("G")&&c2.equals("T")){return 21400000;}
- if(str1.equals("Y")&&c0.equals("G")&&c2.equals("T")){return 21300000;}
- if(str1.equals("B")&&c0.equals("G")&&c2.equals("T")){return 21100000;}
- if(str1.equals("T")&&c0.equals("G")&&c2.equals("T")){return 211000000;}
- if(str1.equals("Z")&&c0.equals("G")&&c2.equals("T")){if(rev==1)
- return 212300001;else
- return 212300000;}
- if(str1.equals("S")&&c0.equals("G")&&c2.equals("T")){return 212100000;}
- if(str1.equals("Q")&&c0.equals("G")&&c2.equals("T")){return 211900000;}
- if(str1.equals("P")&&c0.equals("G")&&c2.equals("T")){return 211700000;}
- if(str1.equals("E")&&c0.equals("G")&&c2.equals("T")){return 211400000;}
- if(str1.equals("X")&&c0.equals("G")&&c2.equals("T")){return 21500000;}
- if(str1.equals("J")&&c0.equals("G")&&c2.equals("T")){return 21600000;}
- if(str1.equals("O")&&c0.equals("G")&&c2.equals("T")){return 211600000;}
- if(str1.equals("F")&&c0.equals("G")&&c2.equals("T")){return 211100000;}
- if(str1.equals("K")&&c0.equals("G")&&c2.equals("T")){return 21700000;}
- if(str1.equals("D")&&c0.equals("G")&&c2.equals("T")){return 21900000;}
- if(str1.equals("I")&&c0.equals("G")&&c2.equals("T")){return 211300000;}
- if(str1.equals("N")&&c0.equals("G")&&c2.equals("T")){return 211500000;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.CELineArray._className,"CGetLinetypeFromString",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CGetLinetypeFromString "+strLine,exc));}else{throw exc;}}
- return-1;},CIsChannel:function(lineType){var lResult=0;try{switch(lineType){case 21700000:case 21710000:case 22123000:case 22123001:case 22320000:case 22320001:case 22521100:case 22521200:case 22521300:case 22521410:case 22521411:case 22521420:case 22521421:case 231111000:case 231112000:case 231113000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117101:case 231117200:case 231117201:case 231117300:case 231117301:case 231113001:case 231113002:case 231113003:case 15000000:lResult=1;break;default:lResult=0;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.CELineArray._className,"CIsChannel",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CIsChannel "+Integer.toString(lineType),exc));}else{throw exc;}}
- return lResult;},setClient:function(value){_client=value;armyc2.c2sd.JavaLineArray.Channels.setClient(value);},getClient:function(){return armyc2.c2sd.JavaLineArray.CELineArray._client;},setMinLength:function(value){armyc2.c2sd.JavaLineArray.DISMSupport.setMinLength(value);armyc2.c2sd.JavaLineArray.arraysupport.setMinLength(value);armyc2.c2sd.JavaLineArray.countsupport.setMinLength(value);return;}};armyc2.c2sd.JavaLineArray.CELineArray._className="CELineArray";armyc2.c2sd.JavaLineArray.CELineArray._client="";var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.Channels={setClient:function(value){_client=value;},setAffiliation:function(value){_affiliation=value;},setShiftLines:function(value){_shiftLines=value;},getShiftLines:function(){return armyc2.c2sd.JavaLineArray.Channels._shiftLines;},ConnectArrayTrueDouble:function(nWidth,nCounter,pLinePoints,pResultChannelPoints){try{var nPointCounter=0;var nDiff1X=0;var nDiff2X=0;var nDiff1Y=0;var nDiff2Y=0;var nLast=0;var lOrient=0;var LinePoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var LinePoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var LinePoint3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var ResultChannelPoint=new armyc2.c2sd.JavaLineArray.CChannelPoints2();LinePoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);LinePoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);nDiff1X=LinePoint2.x-LinePoint1.x;nDiff1Y=LinePoint2.y-LinePoint1.y;if(nDiff1X===0){if(nDiff1Y>0)
- nLast=6;if(nDiff1Y<0)
- nLast=4;}
- if(nDiff1Y===0){if(nDiff1X>0)
- nLast=0;if(nDiff1X<0)
- nLast=2;}
- if(nDiff1X<0&&nDiff1Y>0)
- nLast=3;if(nDiff1X>0&&nDiff1Y>0)
- nLast=0;if(nDiff1X<0&&nDiff1Y<0)
- nLast=3;if(nDiff1X>0&&nDiff1Y<0)
- nLast=0;ResultChannelPoint=armyc2.c2sd.JavaLineArray.Channels.GetTrueEndPointDouble(nWidth,pLinePoints[0],pLinePoints[1],nLast);pResultChannelPoints[0]=new armyc2.c2sd.JavaLineArray.CChannelPoints2(ResultChannelPoint);for(nPointCounter=1;nPointCounter<nCounter;nPointCounter++){LinePoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nPointCounter-1]);LinePoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nPointCounter]);LinePoint3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nPointCounter+1]);nDiff1X=LinePoint2.x-LinePoint1.x;nDiff2X=LinePoint3.x-LinePoint2.x;nDiff1Y=LinePoint2.y-LinePoint1.y;nDiff2Y=LinePoint3.y-LinePoint2.y;if(nDiff1X>0&&nDiff2X>0){switch(nLast){case 0:case 3:case 4:case 7:lOrient=0;break;case 1:case 2:case 5:case 6:lOrient=3;break;default:break;}}
- if(nDiff1X>0&&nDiff2X===0){switch(nLast){case 0:case 3:case 4:case 7:if(nDiff2Y>0)
- lOrient=1;if(nDiff2Y<0)
- lOrient=0;break;case 1:case 2:case 5:case 6:if(nDiff2Y>0)
- lOrient=2;if(nDiff2Y<0)
- lOrient=3;break;default:break;}}
- if(nDiff1X<0&&nDiff2X===0){switch(nLast){case 0:case 3:case 4:case 7:if(nDiff2Y>0)
- lOrient=3;if(nDiff2Y<0)
- lOrient=2;break;case 1:case 2:case 5:case 6:if(nDiff2Y>0)
- lOrient=0;if(nDiff2Y<0)
- lOrient=1;break;default:break;}}
- if(nDiff1X===0&&nDiff2X>0){switch(nLast){case 0:case 3:case 4:case 7:if(nDiff1Y>0)
- lOrient=2;if(nDiff1Y<0)
- lOrient=0;break;case 1:case 2:case 5:case 6:if(nDiff1Y>0)
- lOrient=1;if(nDiff1Y<0)
- lOrient=3;break;default:break;}}
- if(nDiff1X===0&&nDiff2X<0){switch(nLast){case 0:case 3:case 4:case 7:if(nDiff1Y>0)
- lOrient=3;if(nDiff1Y<0)
- lOrient=1;break;case 1:case 2:case 5:case 6:if(nDiff1Y>0)
- lOrient=0;if(nDiff1Y<0)
- lOrient=2;break;default:break;}}
- if(nDiff1X<0&&nDiff2X<0){switch(nLast){case 0:case 3:case 4:case 7:lOrient=3;break;case 1:case 2:case 5:case 6:lOrient=0;break;default:break;}}
- if(new Boolean(nDiff1X>0&nDiff2X<0).valueOf()){switch(nLast){case 0:case 3:case 4:case 7:lOrient=1;break;case 1:case 2:case 5:case 6:lOrient=2;break;default:break;}}
- if(new Boolean(nDiff1X<0&nDiff2X>0).valueOf()){switch(nLast){case 0:case 3:case 4:case 7:lOrient=2;break;case 1:case 2:case 5:case 6:lOrient=1;break;default:break;}}
- if(nDiff1X===0&&nDiff2X===0){switch(nLast){case 4:if(nDiff2Y<0)
- lOrient=0;break;case 6:if(nDiff2Y>0)
- lOrient=0;break;case 5:if(nDiff2Y<0)
- lOrient=3;break;case 7:if(nDiff2Y>0)
- lOrient=3;break;default:break;}}
- pResultChannelPoints[nPointCounter]=armyc2.c2sd.JavaLineArray.Channels.ConnectTrueDouble2(nWidth,LinePoint1,LinePoint2,LinePoint3,lOrient);if(nDiff2X===0){switch(lOrient){case 0:if(nDiff2Y>0){nLast=6;}
- if(nDiff2Y<0){nLast=4;}
- break;case 1:if(nDiff2Y>0){nLast=7;}
- if(nDiff2Y<0){nLast=5;}
- break;case 2:if(nDiff2Y>0){nLast=6;}
- if(nDiff2Y<0){nLast=4;}
- break;case 3:if(nDiff2Y>0){nLast=7;}
- if(nDiff2Y<0){nLast=5;}
- break;default:break;}}
- if(nDiff2X>0){switch(lOrient){case 0:nLast=0;break;case 1:nLast=1;break;case 2:nLast=0;break;case 3:nLast=1;break;default:break;}}
- if(nDiff2X<0){switch(lOrient){case 0:nLast=2;break;case 1:nLast=3;break;case 2:nLast=2;break;case 3:nLast=3;break;default:break;}}}
- ResultChannelPoint=armyc2.c2sd.JavaLineArray.Channels.GetTrueEndPointDouble(nWidth,pLinePoints[nCounter],pLinePoints[nCounter-1],nLast);pResultChannelPoints[nCounter]=new armyc2.c2sd.JavaLineArray.CChannelPoints2(ResultChannelPoint);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"ConnectArrayTrueDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ConnectArrayTrueDouble",exc));}else{throw exc;}}
- return pResultChannelPoints;},GetChannel2Double:function(nChannelWidth,vblCounter,pLinePoints,pResultChannelPoints){try{pResultChannelPoints=armyc2.c2sd.JavaLineArray.Channels.ConnectArrayTrueDouble(Math.floor(nChannelWidth/2),vblCounter-1,pLinePoints,pResultChannelPoints);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetChannel2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetChannel2Double",exc));}else{throw exc;}}
- return pResultChannelPoints;},GetLowerChannelLineDouble:function(pChannelPoints,vblCounter,pResultLinePoints){try{var j=0;for(j=0;j<vblCounter;j++){pResultLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pChannelPoints[j].m_Line1);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetLowerChannelLineDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetLowerChannelLineDouble",exc));}else{throw exc;}}
- return pResultLinePoints;},GetUpperChannelLineDouble:function(pChannelPoints,vblCounter,pResultLinePoints){try{var j;for(j=0;j<vblCounter;j++){pResultLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pChannelPoints[j].m_Line2);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetUpperChannelLineDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetUpperChannelLineDouble",exc));}else{throw exc;}}
- return pResultLinePoints;},FenceType:function(linetype){var bolResult=0;try{switch(linetype){case 231117301:case 231117201:case 231117101:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231111000:case 231114000:case 231112000:case 231113000:bolResult=1;break;default:bolResult=0;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"FenceType",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FenceType "+Integer.toString(linetype),exc));}else{throw exc;}}
- return bolResult;},GetTripleCountDouble:function(pLinePoints,vblCounter,linetype){var lTotal=0;try{var j=0;var lHowManyThisSegment=0;var d=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);if(d<=10){lHowManyThisSegment=0;}else{lHowManyThisSegment=Math.floor(((d-10)/10));}
- lTotal+=lHowManyThisSegment;}
- switch(linetype){case 231117101:case 231117201:case 231117301:lTotal=3*vblCounter;break;case 231117100:case 231117200:case 231117300:lTotal=6*vblCounter+37*lTotal;break;case 231116000:case 231115000:case 231111000:case 231114000:case 231112000:case 231113000:lTotal=4*vblCounter+4*lTotal;break;case 15000000:lTotal=2*vblCounter+1;break;default:lTotal=2*vblCounter;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetTripleCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetTripleCountDouble "+Integer.toString(linetype),exc));}else{throw exc;}}
- return lTotal;},CoordIL2Double:function(nPrinter,pLinePoints,nUpperLower,vblCounter,linetype,vblChannelWidth){var pLinePoints2=new Array(vblCounter);try{var j;var channelWidth=20;var pNewLinePoints=new Array(vblCounter);var pChannelPoints=new Array(vblCounter);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints2);for(j=0;j<vblCounter;j++){pNewLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- switch(linetype){case 231117301:case 231117201:case 231117101:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231114000:case 231111000:case 231113000:case 231112000:case 23111000:case 23111001:case 15000000:channelWidth=vblChannelWidth;break;default:channelWidth=vblChannelWidth;break;}
- if(linetype!==22123000&&linetype!==22123001){channelWidth/=2;}
- pChannelPoints=armyc2.c2sd.JavaLineArray.Channels.GetChannel2Double(channelWidth*nPrinter,vblCounter,pNewLinePoints,pChannelPoints);if(nUpperLower===1){pNewLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetUpperChannelLineDouble(pChannelPoints,vblCounter,pNewLinePoints);for(j=0;j<vblCounter;j++){pLinePoints2[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pNewLinePoints[j]);}}
- if(nUpperLower===0){pNewLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetLowerChannelLineDouble(pChannelPoints,vblCounter,pNewLinePoints);for(j=0;j<vblCounter;j++){pLinePoints2[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pNewLinePoints[j]);}}
- pNewLinePoints=null;pChannelPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"CoordIL2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CoordIL2Double",exc));}else{throw exc;}}
- return pLinePoints2;},GetAAFNTDouble:function(dPrinter,pLowerLinePoints,lLowerCounter,pUpperLinePoints,lUpperCounter,ArrowLinePoint,pLinePoints,dOffsetFactor){try{var j=0;var lCounter;var x=0;var y=0;var outerTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var dottedTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var endLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();lCounter=lLowerCounter+lUpperCounter+8;for(j=0;j<lLowerCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[j]);}
- pLinePoints[lLowerCounter-1].style=5;for(j=0;j<lUpperCounter;j++){pLinePoints[lLowerCounter+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[j]);}
- for(j=lCounter-8;j<lCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);}
- endLinePoint.x=Math.floor(((pLowerLinePoints[lLowerCounter-1].x+pUpperLinePoints[lUpperCounter-1].x)/2));endLinePoint.y=Math.floor(((pLowerLinePoints[lLowerCounter-1].y+pUpperLinePoints[lUpperCounter-1].y)/2));x=(pLowerLinePoints[lLowerCounter-1].x-pUpperLinePoints[lUpperCounter-1].x);y=(pLowerLinePoints[lLowerCounter-1].y-pUpperLinePoints[lUpperCounter-1].y);x=x*x;y=y*y;outerTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ArrowLinePoint);dottedTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(endLinePoint,outerTipLinePoint,Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-9].style=5;pLinePoints[lCounter-8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[lLowerCounter-1]);pt0.x=pUpperLinePoints[lUpperCounter-1].x;pt0.y=pUpperLinePoints[lUpperCounter-1].y;pt1.x=pLowerLinePoints[lLowerCounter-1].x;pt1.y=pLowerLinePoints[lLowerCounter-1].y;tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);pLinePoints[lCounter-6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(outerTipLinePoint);pt0.x=pLowerLinePoints[lLowerCounter-1].x;pt0.y=pLowerLinePoints[lLowerCounter-1].y;pt1.x=pUpperLinePoints[lUpperCounter-1].x;pt1.y=pUpperLinePoints[lUpperCounter-1].y;tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);pLinePoints[lCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[lUpperCounter-1]);pLinePoints[lCounter-4].style=5;pt0.x=pUpperLinePoints[lUpperCounter-1].x;pt0.y=pUpperLinePoints[lUpperCounter-1].y;pt1.x=pLowerLinePoints[lLowerCounter-1].x;pt1.y=pLowerLinePoints[lLowerCounter-1].y;tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((2*dOffsetFactor*dPrinter)));pLinePoints[lCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);pLinePoints[lCounter-3].style=2;pLinePoints[lCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(dottedTipLinePoint);pLinePoints[lCounter-2].style=2;pt0.x=pLowerLinePoints[lLowerCounter-1].x;pt0.y=pLowerLinePoints[lLowerCounter-1].y;pt1.x=pUpperLinePoints[lUpperCounter-1].x;pt1.y=pUpperLinePoints[lUpperCounter-1].y;tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((2*dOffsetFactor*dPrinter)));pLinePoints[lCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);pLinePoints[lCounter-1].style=5;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetAAFNTDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetAAFNTDouble",exc));}else{throw exc;}}
- return;},GetAXADDouble:function(dPrinter,pLowerLinePoints,lLowerCounter,pUpperLinePoints,lUpperCounter,ArrowLinePoint,pLinePoints,vbiDrawThis,dOffsetFactor){try{var j=0;var lCounter=lLowerCounter+lUpperCounter+8;var x=0;var y=0;var OuterTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var InnerTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var EndLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var TempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var origArrowPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ArrowLinePoint);var ptUpper0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[lUpperCounter-1]);var ptLower0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[lLowerCounter-1]);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLowerLinePoints[lLowerCounter-1],pLowerLinePoints[lLowerCounter-2]);if(vbiDrawThis===21710000){if(dist>45){var midPt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLowerLinePoints[lLowerCounter-2],pUpperLinePoints[lUpperCounter-2],0);ArrowLinePoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ArrowLinePoint,midPt,45);pLowerLinePoints[lLowerCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLowerLinePoints[lLowerCounter-1],pLowerLinePoints[lLowerCounter-2],45);pUpperLinePoints[lUpperCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pUpperLinePoints[lUpperCounter-1],pUpperLinePoints[lUpperCounter-2],45);}}
- for(j=0;j<lLowerCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[j]);}
- pLinePoints[lLowerCounter-1].style=5;for(j=0;j<lUpperCounter;j++){pLinePoints[lLowerCounter+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[j]);}
- for(j=lCounter-8;j<lCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);}
- EndLinePoint.x=Math.floor(((pLowerLinePoints[lLowerCounter-1].x+pUpperLinePoints[lUpperCounter-1].x)/2));EndLinePoint.y=Math.floor(((pLowerLinePoints[lLowerCounter-1].y+pUpperLinePoints[lUpperCounter-1].y)/2));x=(pLowerLinePoints[lLowerCounter-1].x-pUpperLinePoints[lUpperCounter-1].x);y=(pLowerLinePoints[lLowerCounter-1].y-pUpperLinePoints[lUpperCounter-1].y);x=x*x;y=y*y;OuterTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ArrowLinePoint);InnerTipLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(EndLinePoint,OuterTipLinePoint,-Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-9].style=5;pLinePoints[lCounter-8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(OuterTipLinePoint);pt0.x=pUpperLinePoints[lUpperCounter-1].x;pt0.y=pUpperLinePoints[lUpperCounter-1].y;pt1.x=pLowerLinePoints[lLowerCounter-1].x;pt1.y=pLowerLinePoints[lLowerCounter-1].y;TempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(TempLinePoint);pLinePoints[lCounter-6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[lLowerCounter-1]);pLinePoints[lCounter-5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(InnerTipLinePoint);pLinePoints[lCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[lUpperCounter-1]);pt0.x=pLowerLinePoints[lLowerCounter-1].x;pt0.y=pLowerLinePoints[lLowerCounter-1].y;pt1.x=pUpperLinePoints[lUpperCounter-1].x;pt1.y=pUpperLinePoints[lUpperCounter-1].y;TempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.GetOffsetPointDouble(pt0,pt1,Math.floor((dOffsetFactor*dPrinter)));pLinePoints[lCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(TempLinePoint);pLinePoints[lCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(OuterTipLinePoint);pLinePoints[lCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(OuterTipLinePoint);pLinePoints[lCounter-1].style=5;switch(vbiDrawThis){case 22521421:case 22521420:case 22521300:case 22521200:case 22521100:case 21700000:case 21710000:pLinePoints[lCounter-6].style=5;pLinePoints[lCounter-5].style=5;break;default:break;}
- if(vbiDrawThis===21710000&&dist>45){pUpperLinePoints[lUpperCounter-1].x=ptUpper0.x;pUpperLinePoints[lUpperCounter-1].y=ptUpper0.y;pLowerLinePoints[lLowerCounter-1].x=ptLower0.x;pLowerLinePoints[lLowerCounter-1].y=ptLower0.y;ArrowLinePoint.x=origArrowPt.x;ArrowLinePoint.y=origArrowPt.y;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetAXADDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetAXADDouble "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return;},GetChannelArray2Double:function(nPrinter,pLinePoints,nUpperLower,vblCounter,vbiDrawThis,vblChannelWidth){try{switch(vbiDrawThis){case 231117301:case 231117201:case 231117101:case 22123001:case 22123000:case 22521200:case 22521300:case 22521100:case 21700000:case 21710000:case 22521410:case 22521411:case 22320000:case 22320001:case 22521420:case 22521421:case 23111000:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231114000:case 231111000:case 231112000:case 231113000:case 231113001:case 231113002:case 231113003:case 15000000:pLinePoints=armyc2.c2sd.JavaLineArray.Channels.CoordIL2Double(nPrinter,pLinePoints,nUpperLower,vblCounter,vbiDrawThis,vblChannelWidth);break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetChannelArray2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetChannelArray2Double "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return pLinePoints;},GetTrueEndPointDouble:function(nWidth,EndLinePoint,NextLinePoint,lLast){var cAnswers=new armyc2.c2sd.JavaLineArray.CChannelPoints2();try{var LinePoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var LinePoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var m=0;var b=0;var bPerpendicular=0;var Upperb=0;var Lowerb=0;var dWidth=nWidth;var bolVertical=0;var pdResult=new armyc2.c2sd.JavaLineArray.ref();bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueLinesDouble(nWidth,EndLinePoint,NextLinePoint,pdResult);m=pdResult.value[0];b=pdResult.value[1];Upperb=pdResult.value[3];Lowerb=pdResult.value[5];if(bolVertical===0){switch(lLast){case 4:case 6:cAnswers.m_Line1.x=EndLinePoint.x-dWidth;cAnswers.m_Line1.y=EndLinePoint.y;cAnswers.m_Line2.x=EndLinePoint.x+dWidth;cAnswers.m_Line2.y=EndLinePoint.y;break;case 5:case 7:cAnswers.m_Line1.x=EndLinePoint.x+dWidth;cAnswers.m_Line1.y=EndLinePoint.y;cAnswers.m_Line2.x=EndLinePoint.x-dWidth;cAnswers.m_Line2.y=EndLinePoint.y;break;default:break;}}
- if(m===0){switch(lLast){case 0:case 2:cAnswers.m_Line1.x=EndLinePoint.x;cAnswers.m_Line1.y=EndLinePoint.y-dWidth;cAnswers.m_Line2.x=EndLinePoint.x;cAnswers.m_Line2.y=EndLinePoint.y+dWidth;break;case 1:case 3:cAnswers.m_Line1.x=EndLinePoint.x;cAnswers.m_Line1.y=EndLinePoint.y+dWidth;cAnswers.m_Line2.x=EndLinePoint.x;cAnswers.m_Line2.y=EndLinePoint.y-dWidth;break;default:break;}}
- if(bolVertical!==0&&m!==0){bPerpendicular=EndLinePoint.y+EndLinePoint.x/m;LinePoint1=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m,Upperb,-1/m,bPerpendicular,1,1,0,0);LinePoint2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m,Lowerb,-1/m,bPerpendicular,1,1,0,0);switch(lLast){case 0:case 2:if(LinePoint1.y<LinePoint2.y){cAnswers.m_Line1=LinePoint1;cAnswers.m_Line2=LinePoint2;}else{cAnswers.m_Line1=LinePoint2;cAnswers.m_Line2=LinePoint1;}
- break;case 1:case 3:if(LinePoint1.y>LinePoint2.y){cAnswers.m_Line1=LinePoint1;cAnswers.m_Line2=LinePoint2;}else{cAnswers.m_Line1=LinePoint2;cAnswers.m_Line2=LinePoint1;}
- break;default:break;}}
- pdResult=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetTrueEndPointDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetTrueEndPointDouble",exc));}else{throw exc;}}
- return cAnswers;},ConnectTrueDouble2:function(nWidth,LinePoint1,LinePoint2,LinePoint3,lOrient){var pAnswerLinePoints=new armyc2.c2sd.JavaLineArray.CChannelPoints2();try{var m1=0;var b1=0;var m2=0;var b2=0;var Lowerb1=0;var Upperb1=0;var Lowerb2=0;var Upperb2=0;var dWidth=nWidth;var pdResult=new armyc2.c2sd.JavaLineArray.ref();var bolVerticalSlope1=0;var bolVerticalSlope2=0;var x=new armyc2.c2sd.JavaLineArray.ref();var y=new armyc2.c2sd.JavaLineArray.ref();bolVerticalSlope1=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueLinesDouble(nWidth,LinePoint1,LinePoint2,pdResult);if(bolVerticalSlope1!==0){m1=pdResult.value[0];b1=pdResult.value[1];Upperb1=pdResult.value[5];Lowerb1=pdResult.value[3];}
- bolVerticalSlope2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueLinesDouble(nWidth,LinePoint2,LinePoint3,pdResult);if(bolVerticalSlope2!==0){m2=pdResult.value[0];b2=pdResult.value[1];Upperb2=pdResult.value[5];Lowerb2=pdResult.value[3];}
- switch(lOrient){case 0:armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Upperb1,m2,Upperb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,0,x,y);pAnswerLinePoints.m_Line1.x=x.value[0];pAnswerLinePoints.m_Line1.y=y.value[0];armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Lowerb1,m2,Lowerb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,3,x,y);pAnswerLinePoints.m_Line2.x=x.value[0];pAnswerLinePoints.m_Line2.y=y.value[0];break;case 1:armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Upperb1,m2,Lowerb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,1,x,y);pAnswerLinePoints.m_Line1.x=x.value[0];pAnswerLinePoints.m_Line1.y=y.value[0];armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Lowerb1,m2,Upperb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,2,x,y);pAnswerLinePoints.m_Line2.x=x.value[0];pAnswerLinePoints.m_Line2.y=y.value[0];break;case 2:armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Lowerb1,m2,Upperb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,2,x,y);pAnswerLinePoints.m_Line1.x=x.value[0];pAnswerLinePoints.m_Line1.y=y.value[0];armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Upperb1,m2,Lowerb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,1,x,y);pAnswerLinePoints.m_Line2.x=x.value[0];pAnswerLinePoints.m_Line2.y=y.value[0];break;case 3:armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Lowerb1,m2,Lowerb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,3,x,y);pAnswerLinePoints.m_Line1.x=x.value[0];pAnswerLinePoints.m_Line1.y=y.value[0];armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble(m1,Upperb1,m2,Upperb2,LinePoint2,bolVerticalSlope1,bolVerticalSlope2,dWidth,0,x,y);pAnswerLinePoints.m_Line2.x=x.value[0];pAnswerLinePoints.m_Line2.y=y.value[0];break;default:break;}
- pdResult=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"ConnectTrueDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ConnectTrueDouble2",exc));}else{throw exc;}}
- return pAnswerLinePoints;},shiftCATKBYFIREControlPoint:function(linetype,pLinePoints,shift){try{if(linetype!==21710000)
- return;var controlPtIndex=pLinePoints.size()-1;var pt0=pLinePoints.get(0);var pt1=pLinePoints.get(1);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints.get(0),pLinePoints.get(1));if(dist<=45)
- return;var controlPt=pLinePoints.get(controlPtIndex);var pt3=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(pt0,pt1,pt0,controlPt);var pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt3,controlPt,shift);pLinePoints.set(controlPtIndex,pt4);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"shiftCATKBYFIREControlPoint",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside shiftCATKBYFIREControlPoint",exc));}else{throw exc;}}},GetChannel1Double:function(lpsaUpperVBPoints,lpsaLowerVBPoints,resultVBPoints,vblUpperCounter,vblLowerCounter,vbiDrawThis,vblChannelWidth,useptr,shapes,rev){var lResult=-1;try{var k=0;var vblCounter=0;var nPrinter=1;var nArrowSize=40*nPrinter;var max=0;var dist=0;var remainder=0;var vblUpperCounter2=vblUpperCounter;var vblLowerCounter2=vblLowerCounter;var nReverseUpper=0;var lUpperFlotCount=0;var lLowerFlotCount=0;var nLowerCounter=0;var lUpperCounter=0;var lResultCounter=0;var XCounter=0;var j=0;var lHowManyThisSegment=0;var l=0;var t=0;var pi=3.141592653589793;var dAngle=0;var d=0;var a=13;var b=6;var dFactor=0;var lEllipseCounter=0;var arrowOffsetFactor=Math.floor(vblChannelWidth/4);var pLowerLinePoints=new Array(vblLowerCounter);var pUpperLinePoints=new Array(vblUpperCounter);var pArrowLinePoints=new Array(1);var pLinePoints=null;var pUpperFlotPoints=null;var pLowerFlotPoints=null;var pOriginalLinePoints=null;var pOriginalLinePoints2=null;armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLowerLinePoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pUpperLinePoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pArrowLinePoints);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var midPt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var midPt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var arrowPts=new Array(3);var XPoints=new Array(4);var pEllipsePoints2=new Array(37);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(XPoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pEllipsePoints2);var temp1LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[0]);var temp2LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var lastPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var nextToLastPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();if(vblChannelWidth<5&&vbiDrawThis!==15000000){vblChannelWidth=5;}
- if(vblLowerCounter<2||vblUpperCounter<2){return-1;}
- for(k=0;k<vblLowerCounter;k++){pLowerLinePoints[k].x=lpsaLowerVBPoints[nLowerCounter];nLowerCounter++;pLowerLinePoints[k].y=lpsaLowerVBPoints[nLowerCounter];nLowerCounter++;if(k===vblLowerCounter-2){nextToLastPoint.x=pLowerLinePoints[k].x;nextToLastPoint.y=pLowerLinePoints[k].y;}
- if(k===vblLowerCounter-1){lastPoint.x=pLowerLinePoints[k].x;lastPoint.y=pLowerLinePoints[k].y;}
- pLowerLinePoints[k].style=0;}
- nLowerCounter=0;var lastSegmentLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(lastPoint,nextToLastPoint);for(k=0;k<vblUpperCounter;k++){pUpperLinePoints[k].x=lpsaUpperVBPoints[lUpperCounter];lUpperCounter++;pUpperLinePoints[k].y=lpsaUpperVBPoints[lUpperCounter];lUpperCounter++;pUpperLinePoints[k].style=0;}
- lUpperCounter=0;pArrowLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblUpperCounter-1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[0]);var shiftLines=armyc2.c2sd.JavaLineArray.Channels._shiftLines;switch(vbiDrawThis){case 22123000:case 231111000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:break;default:shiftLines=false;break;}
- switch(vbiDrawThis){case 21700000:case 22521100:case 22521200:case 22521300:case 22521420:case 22521421:case 22320000:case 22320001:case 22521410:case 22521411:case 21710000:dist=useptr;nArrowSize=Math.floor(Math.sqrt(dist*dist+Math.floor(Math.floor(vblChannelWidth/2)*vblChannelWidth/2)));pUpperLinePoints[vblUpperCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pUpperLinePoints[vblUpperCounter-1],pUpperLinePoints[vblUpperCounter-2],dist);pLowerLinePoints[vblLowerCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLowerLinePoints[vblLowerCounter-1],pLowerLinePoints[vblLowerCounter-2],dist);break;default:break;}
- temp1LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[0]);temp2LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[0]);switch(vbiDrawThis){case 231117301:case 231117201:case 231117101:case 22320000:case 22320001:case 22521410:case 22521411:case 22521420:case 22521421:case 21700000:case 21710000:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231111000:case 231114000:case 231113000:case 231112000:case 231113001:case 231113002:case 231113003:case 15000000:vblCounter=armyc2.c2sd.JavaLineArray.Channels.GetTripleCountDouble(pUpperLinePoints,vblUpperCounter,vbiDrawThis);pOriginalLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter;k++){pOriginalLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- pOriginalLinePoints2=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter;k++){pOriginalLinePoints2[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- switch(vbiDrawThis){case 231117301:case 231117201:case 231117101:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231111000:case 231114000:case 231113000:case 231112000:case 15000000:pLowerLinePoints=new Array(vblLowerCounter);for(k=0;k<vblLowerCounter2;k++){pLowerLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- pUpperLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter2;k++){pUpperLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- pOriginalLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter2;k++){pOriginalLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints2[k]);}
- break;default:break;}
- armyc2.c2sd.JavaLineArray.lineutility.moveSingleCPixels(vbiDrawThis,pUpperLinePoints);armyc2.c2sd.JavaLineArray.lineutility.moveSingleCPixels(vbiDrawThis,pLowerLinePoints);armyc2.c2sd.JavaLineArray.lineutility.MoveChannelPixels(pUpperLinePoints);armyc2.c2sd.JavaLineArray.lineutility.MoveChannelPixels(pLowerLinePoints);if(shiftLines)
- vblChannelWidth*=2;pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pUpperLinePoints,1,vblUpperCounter,vbiDrawThis,vblChannelWidth);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pLowerLinePoints,0,vblLowerCounter,vbiDrawThis,vblChannelWidth);if(shiftLines){if(vbiDrawThis===231117100)
- pLowerLinePoints=pOriginalLinePoints;else if(vbiDrawThis===231117200){for(j=0;j<pUpperLinePoints.length;j++){pUpperLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLowerLinePoints[j],pOriginalLinePoints[j],0);}}else if(vbiDrawThis===231117300)
- pUpperLinePoints=pOriginalLinePoints;else
- pUpperLinePoints=pOriginalLinePoints;}
- if(rev!==1){if(vbiDrawThis===22320000||vbiDrawThis===22521410||vbiDrawThis===22521420||vbiDrawThis===231113002){pUpperLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(temp2LinePoint,pUpperLinePoints[0],10);pLowerLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(temp1LinePoint,pLowerLinePoints[0],10);}}
- break;case 22123000:case 22123001:if(shiftLines===true||vbiDrawThis===22123001){pOriginalLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter;k++){pOriginalLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}}
- if(vbiDrawThis===22123001){pLowerLinePoints=new Array(vblLowerCounter);for(k=0;k<vblLowerCounter2;k++){pLowerLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- pUpperLinePoints=null;pUpperLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter2;k++){pUpperLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}}
- if(shiftLines)
- vblChannelWidth*=2;pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pUpperLinePoints,1,vblUpperCounter,vbiDrawThis,vblChannelWidth);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pLowerLinePoints,0,vblLowerCounter,vbiDrawThis,vblChannelWidth);if(shiftLines){if(armyc2.c2sd.JavaLineArray.Channels._affiliation!==null&&armyc2.c2sd.JavaLineArray.Channels._affiliation.equalsIgnoreCase("H"))
- pLowerLinePoints=pOriginalLinePoints;else
- pUpperLinePoints=pOriginalLinePoints;}
- if((pUpperLinePoints[0].x>pUpperLinePoints[1].x)&&(pUpperLinePoints[0].y!==pUpperLinePoints[1].y)){nReverseUpper=1;armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLowerLinePoints,vblLowerCounter);}else if((pUpperLinePoints[0].x>pUpperLinePoints[1].x)&&(pUpperLinePoints[0].y===pUpperLinePoints[1].y)){nReverseUpper=0;armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pUpperLinePoints,vblUpperCounter);}else if(pUpperLinePoints[0].x<pUpperLinePoints[1].x){nReverseUpper=1;armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLowerLinePoints,vblLowerCounter);}else if((pUpperLinePoints[0].y>pUpperLinePoints[1].y)&&(pUpperLinePoints[0].x===pUpperLinePoints[1].x)){nReverseUpper=1;armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLowerLinePoints,vblLowerCounter);}else if((pUpperLinePoints[0].y<pUpperLinePoints[1].y)&&(pUpperLinePoints[0].x===pUpperLinePoints[1].x)){nReverseUpper=0;armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pUpperLinePoints,vblUpperCounter);}
- break;case 22521300:case 22521200:case 22521100:pOriginalLinePoints=new Array(vblUpperCounter);for(k=0;k<vblUpperCounter;k++){pOriginalLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pUpperLinePoints,1,vblUpperCounter,vbiDrawThis,vblChannelWidth);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(nPrinter,pLowerLinePoints,0,vblLowerCounter,vbiDrawThis,vblChannelWidth);temp1LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-1]);temp2LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblUpperCounter-1]);pLowerLinePoints[vblLowerCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(temp2LinePoint);pUpperLinePoints[vblUpperCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(temp1LinePoint);break;default:break;}
- switch(vbiDrawThis){case 22123001:pLinePoints=new Array(vblUpperCounter+vblLowerCounter);for(j=0;j<pLinePoints.length;j++){pLinePoints[j].x=lpsaUpperVBPoints[0];pLinePoints[j].y=lpsaUpperVBPoints[1];}
- vblCounter=vblLowerCounter+vblUpperCounter;for(k=0;k<vblUpperCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);if(pOriginalLinePoints[0].x<pOriginalLinePoints[1].x){pLinePoints[k].style=26;}
- if(pOriginalLinePoints[0].x>pOriginalLinePoints[1].x){pLinePoints[k].style=26;}
- if(pOriginalLinePoints[0].x>pOriginalLinePoints[1].x){if(pOriginalLinePoints[0].y===pOriginalLinePoints[1].y){pLinePoints[k].style=25;}}
- if(pOriginalLinePoints[0].x===pOriginalLinePoints[1].x){if(pOriginalLinePoints[0].y<pOriginalLinePoints[1].y){pLinePoints[k].style=25;}else{pLinePoints[k].style=26;}}}
- for(k=0;k<vblLowerCounter-1;k++){pLinePoints[vblUpperCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[k]);if(pOriginalLinePoints[0].x<pOriginalLinePoints[1].x){pLinePoints[vblUpperCounter+k].style=25;}
- if(pOriginalLinePoints[0].x>pOriginalLinePoints[1].x){pLinePoints[vblUpperCounter+k].style=25;}
- if(pOriginalLinePoints[0].x>pOriginalLinePoints[1].x){if(pOriginalLinePoints[0].y===pOriginalLinePoints[1].y){pLinePoints[vblUpperCounter+k].style=26;}}
- if(pOriginalLinePoints[0].x===pOriginalLinePoints[1].x){if(pOriginalLinePoints[0].y<pOriginalLinePoints[1].y){pLinePoints[vblUpperCounter+k].style=26;}else{pLinePoints[vblUpperCounter+k].style=25;}}}
- pLinePoints[k+vblUpperCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[k]);pLinePoints[k].style=5;break;case 22123000:lUpperFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pUpperLinePoints,vblUpperCounter);lLowerFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pLowerLinePoints,vblLowerCounter);if(lUpperFlotCount<=0||lLowerFlotCount<=0){return 0;}
- max=vblUpperCounter;if(max<lUpperFlotCount){max=lUpperFlotCount;}
- pUpperFlotPoints=new Array(max);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pUpperFlotPoints);max=vblLowerCounter;if(max<lLowerFlotCount){max=lLowerFlotCount;}
- pLowerFlotPoints=new Array(max);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLowerFlotPoints);for(k=0;k<vblUpperCounter;k++){pUpperFlotPoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- for(k=0;k<vblLowerCounter;k++){pLowerFlotPoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[k]);}
- lUpperFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotDouble(pUpperFlotPoints,vblUpperCounter);lLowerFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotDouble(pLowerFlotPoints,vblLowerCounter);pLinePoints=new Array(lUpperFlotCount+lLowerFlotCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);vblCounter=lLowerFlotCount+lUpperFlotCount;if(nReverseUpper===1){for(k=0;k<lUpperFlotCount;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperFlotPoints[k]);pLinePoints[k].style=25;}
- if(lUpperFlotCount>0){pLinePoints[lUpperFlotCount-1].style=5;}
- for(k=0;k<lLowerFlotCount;k++){pLinePoints[k+lUpperFlotCount]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerFlotPoints[k]);pLinePoints[k+lUpperFlotCount].style=26;}
- if(lUpperFlotCount+lLowerFlotCount>0){pLinePoints[lUpperFlotCount+lLowerFlotCount-1].style=5;}}
- if(nReverseUpper===0){for(k=0;k<lUpperFlotCount;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperFlotPoints[k]);pLinePoints[k].style=26;}
- if(lUpperFlotCount>0)
- pLinePoints[lUpperFlotCount-1].style=5;for(k=0;k<lLowerFlotCount;k++){pLinePoints[k+lUpperFlotCount]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerFlotPoints[k]);pLinePoints[k+lUpperFlotCount].style=25;}
- if(lUpperFlotCount+lLowerFlotCount>0)
- pLinePoints[lUpperFlotCount+lLowerFlotCount-1].style=5;}
- break;case 231117301:case 231117201:case 231117101:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231111000:case 231114000:case 231112000:case 231113000:case 231113001:case 231113002:case 231113003:pLinePoints=new Array(vblCounter);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);for(j=0;j<pLinePoints.length;j++){pLinePoints[j].x=lpsaUpperVBPoints[0];pLinePoints[j].y=lpsaUpperVBPoints[1];}
- switch(vbiDrawThis){case 231117301:case 231117300:case 231116000:case 231113001:case 231113002:case 231113003:case 231117101:case 231117100:for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[k]);}
- break;case 231117201:case 231117200:if(pOriginalLinePoints[0].x<pOriginalLinePoints[1].x){for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}}else{for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}}
- break;case 231115000:for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);pLinePoints[k].style=5;}
- break;case 231111000:for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);pLinePoints[k].style=5;}
- break;case 231114000:for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- break;default:for(k=0;k<vblLowerCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- break;}
- pLinePoints[vblLowerCounter-1].style=5;switch(vbiDrawThis){case 231117301:case 231117300:case 231116000:case 231113001:case 231113002:case 231113003:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- break;case 231117201:case 231117200:if(pOriginalLinePoints[0].x<pOriginalLinePoints[1].x){for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}}else{for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}}
- break;case 231117101:case 231117100:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[k]);}
- break;case 231115000:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[k]);}
- break;case 231111000:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);pLinePoints[vblLowerCounter+k].style=5;}
- break;case 231114000:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- break;default:for(k=0;k<vblUpperCounter;k++){pLinePoints[vblLowerCounter+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k]);}
- break;}
- pLinePoints[vblLowerCounter+vblUpperCounter-1].style=5;lEllipseCounter=vblLowerCounter+vblUpperCounter;if(vbiDrawThis!==231117101&&vbiDrawThis!==231117201&&vbiDrawThis!==231117301&&vbiDrawThis!==231113001&&vbiDrawThis!==231113003&&vbiDrawThis!==231113002&&vbiDrawThis!==22521421&&vbiDrawThis!==22521411&&vbiDrawThis!==22320001&&vbiDrawThis!==15000000){for(j=0;j<vblUpperCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);lHowManyThisSegment=Math.floor(Math.floor(d)/10);remainder=d-10*lHowManyThisSegment;dAngle=armyc2.c2sd.JavaLineArray.lineutility.CalcSegmentAngleDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);dAngle=dAngle+pi/2;for(k=0;k<lHowManyThisSegment;k++){if(vbiDrawThis===231112000){if(k%4===0)
- continue;}else{if(k%2===0)
- continue;}
- var f=k;f*=(1+remainder/d);if(shiftLines===true&&vbiDrawThis===231117200){ptCenter.x=pUpperLinePoints[j].x+Math.floor(((f)*(pUpperLinePoints[j+1].x-pUpperLinePoints[j].x)/lHowManyThisSegment));ptCenter.y=pUpperLinePoints[j].y+Math.floor(((f)*(pUpperLinePoints[j+1].y-pUpperLinePoints[j].y)/lHowManyThisSegment));}else if(shiftLines===false){ptCenter.x=pOriginalLinePoints[j].x+Math.floor(((f)*(pOriginalLinePoints[j+1].x-pOriginalLinePoints[j].x)/lHowManyThisSegment));ptCenter.y=pOriginalLinePoints[j].y+Math.floor(((f)*(pOriginalLinePoints[j+1].y-pOriginalLinePoints[j].y)/lHowManyThisSegment));}else{ptCenter.x=pUpperLinePoints[j].x+Math.floor(((f)*(pUpperLinePoints[j+1].x-pUpperLinePoints[j].x)/lHowManyThisSegment));ptCenter.y=pUpperLinePoints[j].y+Math.floor(((f)*(pUpperLinePoints[j+1].y-pUpperLinePoints[j].y)/lHowManyThisSegment));var ptCenter2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptCenter2.x=pLowerLinePoints[j].x+Math.floor(((f)*(pLowerLinePoints[j+1].x-pLowerLinePoints[j].x)/lHowManyThisSegment));ptCenter2.y=pLowerLinePoints[j].y+Math.floor(((f)*(pLowerLinePoints[j+1].y-pLowerLinePoints[j].y)/lHowManyThisSegment));ptCenter=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(ptCenter,ptCenter2,0);}
- switch(vbiDrawThis){case 231117100:case 231117200:case 231117300:for(l=1;l<37;l++){dFactor=(10*l)*pi/180;pEllipsePoints2[l-1].x=ptCenter.x+a*Math.cos(dFactor);pEllipsePoints2[l-1].y=ptCenter.y+b*Math.sin(dFactor);pEllipsePoints2[l-1].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.RotateGeometryDouble(pEllipsePoints2,36,dAngle*180/pi);pEllipsePoints2[36]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[35]);pEllipsePoints2[36].style=5;for(l=0;l<37;l++){pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[l]);lEllipseCounter++;}
- break;case 231116000:case 231115000:case 231114000:case 231111000:case 231112000:case 231113000:XPoints[0].x=ptCenter.x-8;XPoints[0].y=ptCenter.y-8;XPoints[0].style=0;XPoints[1].x=ptCenter.x+8;XPoints[1].y=ptCenter.y+8;XPoints[1].style=5;XPoints[2].x=ptCenter.x-8;XPoints[2].y=ptCenter.y+8;XPoints[2].style=0;XPoints[3].x=ptCenter.x+8;XPoints[3].y=ptCenter.y-8;XPoints[3].style=5;XCounter++;armyc2.c2sd.JavaLineArray.lineutility.RotateGeometryDouble(XPoints,4,Math.floor((dAngle*180/pi)));for(l=0;l<4;l++){pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(XPoints[l]);switch(vbiDrawThis){case 231112000:if(XCounter===2||XCounter===3||XCounter===4||XCounter===5){pLinePoints[lEllipseCounter].style=5;}
- break;case 231113000:if(XCounter===2||XCounter===3||XCounter===4){pLinePoints[lEllipseCounter].style=5;}
- break;default:break;}
- lEllipseCounter++;}
- if(XCounter===5){XCounter=0;}
- break;default:break;}}
- if(lHowManyThisSegment===0){if(pLinePoints.length>lEllipseCounter){pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j]);lEllipseCounter++;pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j+1]);pLinePoints[lEllipseCounter].style=5;lEllipseCounter++;}}}
- pLinePoints=armyc2.c2sd.JavaLineArray.lineutility.ResizeArray(pLinePoints,lEllipseCounter);vblCounter=pLinePoints.length;}
- if(armyc2.c2sd.JavaLineArray.Channels.FenceType(vbiDrawThis)===1){if(lEllipseCounter<=vblLowerCounter+vblUpperCounter){for(k=0;k<vblLowerCounter+vblUpperCounter;k++){if(pLinePoints[k].style!==5)
- pLinePoints[k].style=0;}}else{for(k=lEllipseCounter-1;k<pLinePoints.length;k++){pLinePoints[k].style=5;}}}
- break;case 15000000:pLinePoints=new Array(vblLowerCounter+vblUpperCounter+1);for(j=0;j<vblLowerCounter;j++)
- pLinePoints[j]=pLowerLinePoints[j];for(j=0;j<vblUpperCounter;j++)
- pLinePoints[j+vblLowerCounter]=pUpperLinePoints[vblUpperCounter-1-j];pLinePoints[pLinePoints.length-1]=pLinePoints[0];break;case 22521420:case 22521421:case 22521100:case 21700000:case 21710000:case 22521200:case 22521300:case 22521410:case 22521411:if(vbiDrawThis!==21710000){vblCounter=vblLowerCounter+vblUpperCounter+8;}else{vblCounter=vblLowerCounter+vblUpperCounter+17;}
- if(vbiDrawThis===22521300){vblCounter=vblLowerCounter+vblUpperCounter+19;}
- pLinePoints=new Array(vblCounter);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);for(j=0;j<pLinePoints.length;j++){pLinePoints[j].x=lpsaUpperVBPoints[0];pLinePoints[j].y=lpsaUpperVBPoints[1];}
- if(vbiDrawThis!==21700000&&vbiDrawThis!==21710000){for(k=0;k<vblCounter;k++){pLinePoints[k].style=0;}}
- armyc2.c2sd.JavaLineArray.Channels.GetAXADDouble(nPrinter,pLowerLinePoints,vblLowerCounter,pUpperLinePoints,vblUpperCounter,pArrowLinePoints[0],pLinePoints,vbiDrawThis,arrowOffsetFactor);if(vbiDrawThis===21700000||vbiDrawThis===21710000){for(k=0;k<vblCounter;k++){if(pLinePoints[k].style!==5){pLinePoints[k].style=1;}}}
- if(vbiDrawThis===22521300){var rotaryTooShort=new Boolean(false);var mUpper=new armyc2.c2sd.JavaLineArray.ref();var mLower=new armyc2.c2sd.JavaLineArray.ref();var bolVerticalUpper=0;var bolVerticalLower=0;var bUpper=0;var bLower=0;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-1]);var dist1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);bolVerticalLower=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,mLower);bLower=pt0.y-mLower.value[0]*pt0.x;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblUpperCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblUpperCounter-1]);bolVerticalUpper=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,mUpper);bUpper=pt0.y-mUpper.value[0]*pt0.x;var dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);midPt1=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(mLower.value[0],bLower,mUpper.value[0],bUpper,bolVerticalLower,bolVerticalUpper,pt0.x,pt0.y);if(dist1<=vblChannelWidth||dist2<=vblChannelWidth){rotaryTooShort=new Boolean(true);midPt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);}
- a=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);b=30;if(a<90){b=a/3;}
- pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[vblUpperCounter-2]);pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[vblUpperCounter-1]);d=Math.floor(vblChannelWidth/4);if(d>armyc2.c2sd.JavaLineArray.Channels.maxLength){d=armyc2.c2sd.JavaLineArray.Channels.maxLength;}
- if(d<armyc2.c2sd.JavaLineArray.Channels.minLength){d=armyc2.c2sd.JavaLineArray.Channels.minLength;}
- if(pt3.x!==pt4.x){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt4,midPt1,3,2*d);pLinePoints[vblLowerCounter+vblUpperCounter+8]=pt0;pLinePoints[vblLowerCounter+vblUpperCounter+8].style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt4,midPt1,2,2*d);pLinePoints[vblLowerCounter+vblUpperCounter+9]=pt1;pLinePoints[vblLowerCounter+vblUpperCounter+9].style=5;}else{pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt4,midPt1,1,2*d);pLinePoints[vblLowerCounter+vblUpperCounter+8]=pt0;pLinePoints[vblLowerCounter+vblUpperCounter+8].style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt4,midPt1,0,2*d);pLinePoints[vblLowerCounter+vblUpperCounter+9]=pt1;pLinePoints[vblLowerCounter+vblUpperCounter+9].style=5;midPt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt1,Math.floor(d),Math.floor(d),arrowPts,0);for(k=0;k<3;k++){pLinePoints[vblLowerCounter+vblUpperCounter+10+k]=arrowPts[k];}
- pLinePoints[vblLowerCounter+vblUpperCounter+12].style=5;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt0,d/2,0);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt0,-d/2,0);pLinePoints[vblLowerCounter+vblUpperCounter+13]=pt3;pLinePoints[vblLowerCounter+vblUpperCounter+14]=pt4;pLinePoints[vblLowerCounter+vblUpperCounter+14].style=5;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-1]);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt0,midPt1,b,0);pLinePoints[vblLowerCounter+vblUpperCounter+15]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblLowerCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblLowerCounter-1]);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt0,midPt1,b,5);pLinePoints[vblLowerCounter+vblUpperCounter+16]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblLowerCounter-1]);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,midPt1,b,0);pLinePoints[vblLowerCounter+vblUpperCounter+17]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblLowerCounter-2]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[vblLowerCounter-1]);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,midPt1,b,5);pLinePoints[vblLowerCounter+vblUpperCounter+18]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);if((rotaryTooShort).booleanValue()){for(l=vblLowerCounter+vblUpperCounter+14;l<vblLowerCounter+vblLowerCounter+19;l++){pLinePoints[l].style=5;}}}
- var dFeature=0;var dist2=0;if(vbiDrawThis===21710000){dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(nextToLastPoint,lastPoint);if(dist2>45)
- dist-=45;if(dist2>20){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pUpperLinePoints[vblUpperCounter-2],pUpperLinePoints[vblUpperCounter-1],5+dist);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLowerLinePoints[vblLowerCounter-2],pLowerLinePoints[vblLowerCounter-1],5+dist);}else{pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pUpperLinePoints[vblUpperCounter-2],pUpperLinePoints[vblUpperCounter-1],-50);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLowerLinePoints[vblLowerCounter-2],pLowerLinePoints[vblLowerCounter-1],-50);}
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt2,pt1,10+Math.abs(dist/2),18);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt2,10+Math.abs(dist/2),5);midPt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt2,17);pLinePoints[vblCounter-9]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[vblCounter-6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);if(dist2>20){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pUpperLinePoints[vblUpperCounter-2],pUpperLinePoints[vblUpperCounter-1],15+dist);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLowerLinePoints[vblLowerCounter-2],pLowerLinePoints[vblLowerCounter-1],15+dist);}else{pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pUpperLinePoints[vblUpperCounter-2],pUpperLinePoints[vblUpperCounter-1],-50);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLowerLinePoints[vblLowerCounter-2],pLowerLinePoints[vblLowerCounter-1],-50);}
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt2,pt1,Math.abs(dist/2),18);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt2,Math.abs(dist/2),18);midPt2=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt2,18);pLinePoints[vblCounter-8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[vblCounter-7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);pLinePoints[vblCounter-5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midPt2);if(midPt1.x===midPt2.x&&midPt1.y===midPt2.y){if(armyc2.c2sd.JavaLineArray.Channels._client.startsWith("cpof"))
- dFeature=30;else
- dFeature=15;midPt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(nextToLastPoint,pArrowLinePoints[0],10,17);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(lastPoint,midPt1,midPt1,dFeature,18);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(lastPoint,midPt1,midPt1,-dFeature,5);pLinePoints[vblCounter-9]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[vblCounter-6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);if(armyc2.c2sd.JavaLineArray.Channels._client.startsWith("cpof"))
- midPt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(nextToLastPoint,pArrowLinePoints[0],20,17);else{if(dist2>30)
- midPt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(nextToLastPoint,pArrowLinePoints[0],20,17);else
- midPt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(nextToLastPoint,pArrowLinePoints[0],dFeature,17);}
- dFeature-=10;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(lastPoint,midPt2,midPt2,dFeature,18);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(lastPoint,midPt2,midPt2,-dFeature,18);pLinePoints[vblCounter-8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[vblCounter-7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[vblCounter-5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midPt2);}
- if(armyc2.c2sd.JavaLineArray.Channels._client.startsWith("cpof"))
- dFeature=30;else{if(dist2>30)
- dFeature=30;else if(dist2>20)
- dFeature=10;else
- dFeature=10;}
- pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(midPt1,midPt2,dFeature,Math.floor(dFeature));pLinePoints[vblCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(midPt2,pt1,Math.floor(Math.floor(dFeature)/2),Math.floor(Math.floor(dFeature)/2),arrowPts,18);for(k=0;k<3;k++){pLinePoints[vblCounter-k-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arrowPts[k]);pLinePoints[vblCounter-k-1].style=18;}}
- break;case 22320000:case 22320001:vblCounter=vblLowerCounter+vblUpperCounter+8;pLinePoints=new Array(vblCounter);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);for(j=0;j<pLinePoints.length;j++){pLinePoints[j].x=lpsaUpperVBPoints[0];pLinePoints[j].y=lpsaUpperVBPoints[1];}
- for(k=0;k<vblCounter;k++){pLinePoints[k].style=0;}
- armyc2.c2sd.JavaLineArray.Channels.GetAAFNTDouble(nPrinter,pLowerLinePoints,vblLowerCounter,pUpperLinePoints,vblUpperCounter,pArrowLinePoints[0],pLinePoints,arrowOffsetFactor);break;default:break;}
- if(vbiDrawThis===231117101||vbiDrawThis===231117201||vbiDrawThis===231117301){vblCounter=3*vblUpperCounter;for(k=vblLowerCounter+vblUpperCounter;k<vblCounter;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[k-vblLowerCounter-vblUpperCounter]);pLinePoints[k].style=25;}
- pLinePoints[vblLowerCounter-1].style=5;pLinePoints[vblLowerCounter+vblUpperCounter-1].style=5;}
- if(vbiDrawThis===231113003){for(k=0;k<vblCounter;k++){if(pLinePoints[k].style!==5){pLinePoints[k].style=18;}}}
- if(shapes===null){for(j=0;j<pLinePoints.length;j++){resultVBPoints[3*j]=pLinePoints[j].x;resultVBPoints[3*j+1]=pLinePoints[j].y;resultVBPoints[3*j+2]=pLinePoints[j].style;}
- return pLinePoints.length;}
- var shape=null;var beginLine=true;var beginPath=true;if(vbiDrawThis===22320000||vbiDrawThis===22320001){for(k=0;k<vblCounter;k++){if(pLinePoints[k].style===2)
- continue;if(shape===null)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);if(beginLine){if(k>0)
- if(pLinePoints[k].style===5&&pLinePoints[k-1].style===5)
- shape.lineTo(pLinePoints[k]);if(k===0)
- shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5){beginLine=true;}}
- if(k===vblCounter-1){shapes.add(shape);}}
- for(k=0;k<vblCounter;k++){if(pLinePoints[k].style===2&&pLinePoints[k-1].style===5){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(2);shape.moveTo(pLinePoints[k]);}else if(pLinePoints[k].style===2&&pLinePoints[k-1].style===2){shape.lineTo(pLinePoints[k]);}else if(pLinePoints[k].style===5&&pLinePoints[k-1].style===2){shape.lineTo(pLinePoints[k]);shapes.add(shape);break;}else
- continue;}}
- for(k=0;k<vblCounter;k++){if(shape===null){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);}
- switch(vbiDrawThis){case 21700000:case 21710000:shape.set_Style(1);break;}
- switch(vbiDrawThis){case 22320000:case 22320001:break;case 22123000:if(beginPath===false){if(k>0){if(pLinePoints[k].style===5){shape.lineTo(pLinePoints[k]);if(shape!==null&&shape.getShape()!==null){shapes.add(shape);}
- beginPath=true;}else{shape.lineTo(pLinePoints[k]);}}else{shape.moveTo(pLinePoints[k]);}}else{shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[k]);shape.set_Style(pLinePoints[k].style);if(pLinePoints[k].style===25)
- shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);beginPath=false;}
- break;case 21700000:case 21710000:case 22521300:case 22521420:case 22521421:case 22521200:case 22521100:if(beginLine){if(k>0){if(pLinePoints[k].style===5&&pLinePoints[k-1].style===5&&k!==vblCounter-1)
- continue;}
- shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5){beginLine=true;}}
- if(k===vblCounter-1){if(shape!==null&&shape.getShape()!==null){shapes.add(shape);}}
- break;case 231111000:case 231112000:case 231113000:case 231115000:case 231116000:if(k===0){shape.moveTo(pLinePoints[k]);if(pLinePoints[k].style===5){continue;}}
- if(k>0&&k<vblCounter-1){if(pLinePoints[k-1].style===5)
- shape.moveTo(pLinePoints[k]);else if(pLinePoints[k-1].style===0)
- shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5)
- shape.moveTo(pLinePoints[k]);if(k===vblCounter-2&&pLinePoints[k].style===0){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}}
- if(k===vblCounter-1){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}
- break;default:if(beginLine){if(k===0)
- shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5){beginLine=true;}}
- if(k===vblCounter-1){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}
- break;}}
- var fillShapes=armyc2.c2sd.JavaLineArray.Channels.getAXADFillShapes(vbiDrawThis,pLinePoints);if(fillShapes!==null&&fillShapes.size()>0)
- shapes.addAll(0,fillShapes);if(vbiDrawThis===15000000)
- {shapes.remove(1);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pOriginalLinePoints[0]);for(j=1;j<pOriginalLinePoints.length;j++)
- shape.lineTo(pOriginalLinePoints[j]);shapes.add(shape);}
- lResult=lResultCounter;pLinePoints=null;pLowerLinePoints=null;pUpperLinePoints=null;pArrowLinePoints=null;pUpperFlotPoints=null;arrowPts=null;XPoints=null;pEllipsePoints2=null;pOriginalLinePoints=null;pOriginalLinePoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"GetChannel1Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetChannel1Double "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return lResult;},getAXADFillShapes:function(lineType,pLinePoints){var shapes=null;try{var newPts=new java.util.ArrayList();var j=0;var shape=null;var n=pLinePoints.length;switch(lineType){case 15000000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(pLinePoints[0]);for(j=1;j<pLinePoints.length;j++){shape.lineTo(pLinePoints[j]);}
- break;case 231113001:case 231113002:case 231113003:for(j=0;j<Math.floor(n/2);j++){newPts.add(pLinePoints[j]);}
- for(j=n-1;j>=Math.floor(n/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;case 22521100:case 22521200:case 22521420:case 21700000:case 22521421:for(j=0;j<Math.floor((pLinePoints.length-8)/2);j++){newPts.add(pLinePoints[j]);}
- newPts.add(pLinePoints[n-6]);newPts.add(pLinePoints[n-7]);newPts.add(pLinePoints[n-8]);newPts.add(pLinePoints[n-3]);newPts.add(pLinePoints[n-4]);for(j=n-9;j>=Math.floor((n-8)/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;case 22320000:case 22320001:for(j=0;j<Math.floor((pLinePoints.length-8)/2);j++){newPts.add(pLinePoints[j]);}
- newPts.add(pLinePoints[n-8]);newPts.add(pLinePoints[n-7]);newPts.add(pLinePoints[n-6]);newPts.add(pLinePoints[n-5]);newPts.add(pLinePoints[n-4]);for(j=n-9;j>=Math.floor((n-8)/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;case 22521411:case 22521410:for(j=0;j<Math.floor((pLinePoints.length-8)/2);j++){newPts.add(pLinePoints[j]);}
- newPts.add(pLinePoints[n-6]);newPts.add(pLinePoints[n-5]);for(j=n-9;j>=Math.floor((n-8)/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;case 22521300:for(j=0;j<Math.floor((pLinePoints.length-19)/2);j++){newPts.add(pLinePoints[j]);}
- newPts.add(pLinePoints[n-17]);newPts.add(pLinePoints[n-18]);newPts.add(pLinePoints[n-19]);newPts.add(pLinePoints[n-14]);newPts.add(pLinePoints[n-15]);for(j=n-20;j>=Math.floor((n-19)/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;case 21710000:for(j=0;j<Math.floor((pLinePoints.length-17)/2);j++){newPts.add(pLinePoints[j]);}
- newPts.add(pLinePoints[n-15]);newPts.add(pLinePoints[n-16]);newPts.add(pLinePoints[n-17]);newPts.add(pLinePoints[n-12]);newPts.add(pLinePoints[n-13]);for(j=n-18;j>=Math.floor((n-17)/2);j--){newPts.add(pLinePoints[j]);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(newPts.get(0));for(j=1;j<newPts.size();j++){shape.lineTo(newPts.get(j));}
- break;default:break;}
- if(shape!==null){shapes=new java.util.ArrayList();shape.setLineColor(null);shapes.add(shape);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.Channels._className,"getAXADfillShapes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getAXADFillShapes",exc));}else{throw exc;}}
- return shapes;},maxLength:100,minLength:5,_className:"Channels",_client:"",_affiliation:"",_shiftLines:true};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.DISMSupport={setMinLength:function(mLength){minLength=mLength;},GetTGFontSize:function(iLength){var result=-1;try{if(iLength<20)
- result=0;else if(iLength<50)
- result=1;else if(iLength>250)
- result=3;else
- result=2;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetTGFontSize",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetTGFontSize",exc));}else{throw exc;}}
- return result;},ArcApproximationDouble:function(left,top,right,bottom,startx,starty,endx,endy,lpoints){try{var dstartx=startx;var dstarty=starty;var dendx=endx;var dendy=endy;var a=0;var b=0;var ctrX=0;var ctrY=0;var x1;var y1;var x2;var y2;var startAngle;var endAngle;var angleIncrement=0;var t=0;var i=0;if(left>right){var temp=left;left=right;right=temp;}
- if(top>bottom){temp=top;top=bottom;bottom=temp;}
- a=(right-left)/2.0;b=(bottom-top)/2.0;ctrX=left+a;ctrY=top+b;x1=dstartx-ctrX;x2=dendx-ctrX;y1=ctrY-dstarty;y2=ctrY-dendy;if(y1===0){if(x1>0)
- startAngle=0;else
- startAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI;}else if(x1===0){if(y1>0)
- startAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI*0.5;else
- startAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI*-0.5;}else
- startAngle=Math.atan2(y1,x1);if(y2===0){if(x2>0)
- endAngle=0;else
- endAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI;}else if(x2===0){if(y2>0)
- endAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI*0.5;else
- endAngle=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI*-0.5;}else
- endAngle=Math.atan2(y2,x2);if(endAngle<=startAngle)
- endAngle+=2*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI;angleIncrement=(endAngle-startAngle)/16.0;for(t=startAngle;i<17;t+=angleIncrement,i++){lpoints[i].x=ctrX+a*Math.cos(t);lpoints[i].y=ctrY-b*Math.sin(t);}
- return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"ArcApproximationDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ArcApproximationDouble",exc));}else{throw exc;}}},DrawOpenRectangleDouble:function(points,pointsCorner,resultpts){try{var point_mid=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;point_mid.x=(points[0].x+points[1].x)/2;point_mid.y=(points[0].y+points[1].y)/2;pointsCorner[0].x=points[0].x-point_mid.x+points[2].x;pointsCorner[0].y=points[0].y-point_mid.y+points[2].y;pointsCorner[1].x=points[1].x-point_mid.x+points[2].x;pointsCorner[1].y=points[1].y-point_mid.y+points[2].y;resultpts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);resultpts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pointsCorner[1]);resultpts[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pointsCorner[0]);resultpts[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[0]);for(j=0;j<4;j++){resultpts[j].style=0;}
- resultpts[3].style=5;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"DrawOpenRectangleDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawOpenRectangleDouble",exc));}else{throw exc;}}
- return;},DetermineDirectionDouble:function(points){var result=0;try{var dP0P1M=0;var iP0P1B=0;if(points[0].x===points[1].x){if(points[2].x<points[0].x){return 1;}else{return 0;}}else{dP0P1M=(points[0].y-points[1].y)/(points[0].x-points[1].x);iP0P1B=(points[0].y-dP0P1M*points[0].x);if(((points[2].y-iP0P1B)/dP0P1M)>points[2].x){return 1;}else{return 0;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"DetermineDirectionDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DetermineDirectionDouble",exc));}else{throw exc;}}
- return result;},CalcEndpieceDeltasDouble:function(points,piDeltaX,piDeltaY,dAngleDelta){try{var pntMid=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var iDiagEOL_length=0;var dAngle1=0;pntMid.x=(points[0].x+points[1].x)/2;pntMid.y=(points[0].y+points[1].y)/2;iDiagEOL_length=((Math.sqrt((points[1].x-points[0].x)*(points[1].x-points[0].x)+(points[1].y-points[0].y)*(points[1].y-points[0].y))+Math.sqrt((points[2].x-pntMid.x)*(points[2].x-pntMid.x)+(points[2].y-pntMid.y)*(points[2].y-pntMid.y)))/20);if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength/5){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength/5;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(points[2].y-pntMid.y,points[2].x-pntMid.x)+dAngleDelta;piDeltaX.value=Clazz.newArray(1,0);piDeltaY.value=Clazz.newArray(1,0);piDeltaX.value[0]=(iDiagEOL_length*Math.cos(dAngle1));piDeltaY.value[0]=(iDiagEOL_length*Math.sin(dAngle1));return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"CalcEndpieceDeltasDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcEndpieceDeltasDouble",exc));}else{throw exc;}}},GetDelayGraphicEtcDouble:function(points){var counter=0;try{var pts=new Array(2);var savepoints=new Array(3);var iLength=0;var iRadius=0;var iDiagEOL_length=0;var dAngle1=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;var ptArcCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var arcpoints=new Array(17);var deltapoints=new Array(4);var j=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcpoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=14;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;iLength=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));iRadius=Math.sqrt((savepoints[2].x-savepoints[1].x)*(savepoints[2].x-savepoints[1].x)+(savepoints[2].y-savepoints[1].y)*(savepoints[2].y-savepoints[1].y))/2;iDiagEOL_length=(iLength+iRadius*2)/20;if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(points[1].y-points[0].y,points[1].x-points[0].x);iDeltaX1=(iDiagEOL_length*Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY1=(iDiagEOL_length*Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaX2=(iDiagEOL_length*Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY2=(iDiagEOL_length*Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints[j]);counter++;}
- ptArcCenter.x=(savepoints[1].x+savepoints[2].x)/2;ptArcCenter.y=(savepoints[1].y+savepoints[2].y)/2;var reverseArc=armyc2.c2sd.JavaLineArray.DISMSupport.ReverseDelayArc(savepoints);if(reverseArc===false){armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-iRadius),(ptArcCenter.y-iRadius),(ptArcCenter.x+iRadius),(ptArcCenter.y+iRadius),savepoints[1].x,savepoints[1].y,savepoints[2].x,savepoints[2].y,arcpoints);}else{armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-iRadius),(ptArcCenter.y-iRadius),(ptArcCenter.x+iRadius),(ptArcCenter.y+iRadius),savepoints[2].x,savepoints[2].y,savepoints[1].x,savepoints[1].y,arcpoints);}
- for(j=0;j<17;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);points[counter].style=0;counter++;}
- pts=null;savepoints=null;arcpoints=null;deltapoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDelayGraphicEtcDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDelayGraphicEtcDouble",exc));}else{throw exc;}}
- return counter;},GetDISMCoverDouble:function(points,linetype){var counter=0;try{var dAngle0;var dDeltaX0;var dDeltaY0;var dDeltaX1;var dDeltaY1;var iLengthPt0Pt1=0;var iLengthPt0Pt2=0;var iDelta=0;var j=0;var t=1;var iFontSize=0;var iLetterOffset=0;var savepoints=new Array(3);var pts=new Array(2);var ptsJaggyLine=new Array(4);var goLeftThenRight=false;var sign=1;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pt1,pt2,pt0,pt3,pt4);armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pt3,pt0,pt1,pt2,pt4);var quadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pt0,pt4);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);if(pt1.x<pt2.x&&quadrant===1)
- sign=-1;else if(pt1.x>pt2.x&&quadrant===2)
- sign=-1;else if(pt1.x>pt2.x&&quadrant===3)
- sign=-1;else if(pt1.x<pt2.x&&quadrant===4)
- sign=-1;if(linetype===22139000)
- t=0;if(points[1].x<=points[2].x)
- goLeftThenRight=true;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);savepoints[j].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsJaggyLine);iLengthPt0Pt1=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));iLengthPt0Pt2=Math.sqrt((savepoints[2].x-savepoints[0].x)*(savepoints[2].x-savepoints[0].x)+(savepoints[2].y-savepoints[0].y)*(savepoints[2].y-savepoints[0].y));if(iLengthPt0Pt1>iLengthPt0Pt2){iLengthPt0Pt1=iLengthPt0Pt2;}
- iFontSize=armyc2.c2sd.JavaLineArray.DISMSupport.GetTGFontSize(iLengthPt0Pt1);if(iFontSize>0){iDelta=iLengthPt0Pt1/15;if(iDelta>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDelta=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDelta<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDelta=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- if(goLeftThenRight)
- savepoints[0].x-=30*t;else
- savepoints[0].x+=30*t;iLetterOffset=0;ptsJaggyLine[0].x=savepoints[0].x-iLetterOffset*2;ptsJaggyLine[0].y=savepoints[0].y;ptsJaggyLine[0].x-=iLetterOffset;dAngle0=Math.atan2(ptsJaggyLine[0].y-savepoints[1].y,ptsJaggyLine[0].x-savepoints[1].x);pts[0].x=(ptsJaggyLine[0].x+savepoints[1].x)/2;pts[0].y=(ptsJaggyLine[0].y+savepoints[1].y)/2;dDeltaX0=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;dDeltaX1=Math.cos(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY1=Math.sin(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[0].x=savepoints[1].x+dDeltaX0;ptsJaggyLine[0].y=savepoints[1].y+dDeltaY0;ptsJaggyLine[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);ptsJaggyLine[2].x=savepoints[1].x+dDeltaX1;ptsJaggyLine[2].y=savepoints[1].y+dDeltaY1;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);points[counter].style=0;if(linetype===22139000){points[counter].style=9;}
- counter++;}
- points[counter-1].style=5;if(linetype===22139000){points[counter-1].style=9;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[counter-3]);points[counter].style=10;counter++;}
- if(goLeftThenRight)
- savepoints[0].x+=60*t;else
- savepoints[0].x-=60*t;ptsJaggyLine[0].x=savepoints[0].x+iLetterOffset*2;ptsJaggyLine[0].y=savepoints[0].y;ptsJaggyLine[0].x+=iLetterOffset;dAngle0=Math.atan2(ptsJaggyLine[0].y-savepoints[2].y,ptsJaggyLine[0].x-savepoints[2].x);pts[0].x=(ptsJaggyLine[0].x+savepoints[2].x)/2;pts[0].y=(ptsJaggyLine[0].y+savepoints[2].y)/2;dDeltaX0=Math.cos(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;dDeltaX1=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY1=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[0].x=savepoints[2].x+dDeltaX0;ptsJaggyLine[0].y=savepoints[2].y+dDeltaY0;ptsJaggyLine[1]=savepoints[2];ptsJaggyLine[2].x=savepoints[2].x+dDeltaX1;ptsJaggyLine[2].y=savepoints[2].y+dDeltaY1;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);points[counter].style=0;if(linetype===22139000)
- points[counter].style=9;counter++;}
- points[counter-1].style=5;if(linetype===22139000){points[counter-1].style=9;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[counter-3]);points[counter].style=10;counter++;}}else{points[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[0].style=0;points[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[1].style=5;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[2].style=0;points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);return 4;}
- savepoints=null;pts=null;ptsJaggyLine=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMcoverDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMCoverDouble",exc));}else{throw exc;}}
- return counter;},GetDISMCoverDoubleRevC:function(points,linetype,vblSaveCounter){var counter=0;try{var dAngle0=0;var dDeltaX0=0;var dDeltaY0=0;var dDeltaX1=0;var dDeltaY1=0;var iLengthPt0Pt1=0;var iLengthPt0Pt2=0;var iDelta=0;var j=0;var t=1;var iFontSize=0;var iLetterOffset=0;var savepoints=new Array(3);var pts=new Array(2);var ptsJaggyLine=new Array(4);var goLeftThenRight=false;var sign=1;var origPoints=null;if(vblSaveCounter===4){origPoints=new Array(4);for(j=0;j<vblSaveCounter;j++)
- origPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);points[1]=origPoints[0];points[2]=origPoints[3];points[0].x=(origPoints[1].x+origPoints[2].x)/2;points[0].y=(origPoints[1].y+origPoints[2].y)/2;}
- var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pt1,pt2,pt0,pt3,pt4);armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pt3,pt0,pt1,pt2,pt4);var quadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pt0,pt4);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);if(pt1.x<pt2.x&&quadrant===1)
- sign=-1;else if(pt1.x>pt2.x&&quadrant===2)
- sign=-1;else if(pt1.x>pt2.x&&quadrant===3)
- sign=-1;else if(pt1.x<pt2.x&&quadrant===4)
- sign=-1;if(linetype===22139000)
- t=0;if(points[1].x<=points[2].x)
- goLeftThenRight=true;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);savepoints[j].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsJaggyLine);iLengthPt0Pt1=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));iLengthPt0Pt2=Math.sqrt((savepoints[2].x-savepoints[0].x)*(savepoints[2].x-savepoints[0].x)+(savepoints[2].y-savepoints[0].y)*(savepoints[2].y-savepoints[0].y));if(iLengthPt0Pt1>iLengthPt0Pt2){iLengthPt0Pt1=iLengthPt0Pt2;}
- iFontSize=armyc2.c2sd.JavaLineArray.DISMSupport.GetTGFontSize(iLengthPt0Pt1);if(iFontSize>0){iDelta=iLengthPt0Pt1/15;if(iDelta>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDelta=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDelta<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDelta=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- if(vblSaveCounter<4){if(goLeftThenRight)
- savepoints[0].x-=30*t;else
- savepoints[0].x+=30*t;iLetterOffset=0;ptsJaggyLine[0].x=savepoints[0].x-iLetterOffset*2;ptsJaggyLine[0].y=savepoints[0].y;ptsJaggyLine[0].x-=iLetterOffset;dAngle0=Math.atan2(ptsJaggyLine[0].y-savepoints[1].y,ptsJaggyLine[0].x-savepoints[1].x);pts[0].x=(ptsJaggyLine[0].x+savepoints[1].x)/2;pts[0].y=(ptsJaggyLine[0].y+savepoints[1].y)/2;dDeltaX0=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;}else{ptsJaggyLine[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[1]);dAngle0=Math.atan2(ptsJaggyLine[0].y-origPoints[0].y,ptsJaggyLine[0].x-origPoints[0].x);pts[0].x=(ptsJaggyLine[0].x+origPoints[0].x)/2;pts[0].y=(ptsJaggyLine[0].y+origPoints[0].y)/2;dDeltaX0=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[0]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;}
- dDeltaX1=Math.cos(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY1=Math.sin(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;if(vblSaveCounter<4){ptsJaggyLine[0].x=savepoints[1].x+dDeltaX0;ptsJaggyLine[0].y=savepoints[1].y+dDeltaY0;}else{ptsJaggyLine[0].x=origPoints[0].x+dDeltaX0;ptsJaggyLine[0].y=origPoints[0].y+dDeltaY0;}
- if(vblSaveCounter<4)
- ptsJaggyLine[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);else
- ptsJaggyLine[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[0]);if(vblSaveCounter<4){ptsJaggyLine[2].x=savepoints[1].x+dDeltaX1;ptsJaggyLine[2].y=savepoints[1].y+dDeltaY1;}else{ptsJaggyLine[2].x=origPoints[0].x+dDeltaX1;ptsJaggyLine[2].y=origPoints[0].y+dDeltaY1;}
- for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);points[counter].style=0;if(linetype===22139000){points[counter].style=9;}
- counter++;}
- points[counter-1].style=5;if(linetype===22139000){points[counter-1].style=9;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[counter-3]);points[counter].style=10;counter++;}
- if(vblSaveCounter<4){if(goLeftThenRight)
- savepoints[0].x+=60*t;else
- savepoints[0].x-=60*t;ptsJaggyLine[0].x=savepoints[0].x+iLetterOffset*2;ptsJaggyLine[0].y=savepoints[0].y;ptsJaggyLine[0].x+=iLetterOffset;dAngle0=Math.atan2(ptsJaggyLine[0].y-savepoints[2].y,ptsJaggyLine[0].x-savepoints[2].x);pts[0].x=(ptsJaggyLine[0].x+savepoints[2].x)/2;pts[0].y=(ptsJaggyLine[0].y+savepoints[2].y)/2;dDeltaX0=Math.cos(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;dDeltaX1=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY1=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[0].x=savepoints[2].x+dDeltaX0;ptsJaggyLine[0].y=savepoints[2].y+dDeltaY0;ptsJaggyLine[1]=savepoints[2];ptsJaggyLine[2].x=savepoints[2].x+dDeltaX1;ptsJaggyLine[2].y=savepoints[2].y+dDeltaY1;}else{ptsJaggyLine[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[2]);dAngle0=Math.atan2(ptsJaggyLine[0].y-origPoints[3].y,ptsJaggyLine[0].x-origPoints[3].x);pts[0].x=(ptsJaggyLine[0].x+origPoints[3].x)/2;pts[0].y=(ptsJaggyLine[0].y+origPoints[3].y)/2;dDeltaX0=Math.cos(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY0=Math.sin(dAngle0-sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[1].x=pts[0].x-dDeltaX0;ptsJaggyLine[1].y=pts[0].y-dDeltaY0;ptsJaggyLine[2].x=pts[0].x+dDeltaX0;ptsJaggyLine[2].y=pts[0].y+dDeltaY0;ptsJaggyLine[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[3]);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);counter++;}
- points[counter-1].style=5;dDeltaX1=Math.cos(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;dDeltaY1=Math.sin(dAngle0+sign*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDelta;ptsJaggyLine[0].x=origPoints[3].x+dDeltaX0;ptsJaggyLine[0].y=origPoints[3].y+dDeltaY0;ptsJaggyLine[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[3]);ptsJaggyLine[2].x=origPoints[3].x+dDeltaX1;ptsJaggyLine[2].y=origPoints[3].y+dDeltaY1;}
- for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsJaggyLine[j]);points[counter].style=0;if(linetype===22139000)
- points[counter].style=9;counter++;}
- points[counter-1].style=5;if(linetype===22139000){points[counter-1].style=9;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[counter-3]);points[counter].style=10;counter++;}}else{points[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[0].style=0;points[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[1].style=5;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[2].style=0;points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);return 4;}
- savepoints=null;pts=null;ptsJaggyLine=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMcoverDoubleRevC",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMCoverDoubleRevc",exc));}else{throw exc;}}
- return counter;},GetDISMBypassDouble:function(points,linetype){var counter=0;try{var j=0;var pointsCorner=new Array(2);var rectpts=new Array(4);var savepoints=new Array(3);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);for(j=0;j<4;j++){points[counter]=rectpts[j];counter++;}
- bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[j]);counter++;}
- pointsCorner=null;rectpts=null;savepoints=null;deltapoints1=null;deltapoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMBypassDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMBypassDouble",exc));}else{throw exc;}}
- return counter;},GetDISMBreachDouble:function(points,linetype){var counter=0;try{var pointsCorner=new Array(2);var rectpts=new Array(4);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;var j=0;var savepoints=new Array(3);for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[j]);counter++;}
- bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints2);}}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[j]);counter++;}
- pointsCorner=null;rectpts=null;savepoints=null;deltapoints1=null;deltapoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMBreachDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMBreachDouble",exc));}else{throw exc;}}
- return counter;},GetDISMCanalizeDouble:function(points,linetype){var counter=0;try{var pointsCorner=new Array(2);var rectpts=new Array(4);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var j=0;var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;var savepoints=new Array(3);for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[j]);counter++;}
- bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],-iDeltaY.value[0],iDeltaX.value[0],deltapoints2);}}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[j]);counter++;}
- pointsCorner=null;rectpts=null;savepoints=null;deltapoints1=null;deltapoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMCanalizeDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMCanalizeDouble",exc));}else{throw exc;}}
- return counter;},GetDISMDeceiveDouble:function(points){try{var savepoints=new Array(3);var j=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- points[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[0].style=1;points[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[1].style=5;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[2].style=1;points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[3].style=5;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMDeceiveDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMDeceiveDouble",exc));}else{throw exc;}}
- return;},GetDISMDisruptDouble:function(points,linetype){var counter=0;try{var pts=new Array(2);var ptsArrow=new Array(3);var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;var savepoints=new Array(3);var dAngle1=0;var deltapoints1=new Array(4);var deltapoints2=new Array(4);var deltapoints3=new Array(4);var iDiagEOL_length=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsArrow);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints3);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[counter].style=5;counter++;ptCenter.x=(savepoints[0].x+savepoints[1].x)/2;ptCenter.y=(savepoints[0].y+savepoints[1].y)/2;ptsArrow[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);ptsArrow[1].x=ptCenter.x+(savepoints[2].x-savepoints[1].x)*4/5;ptsArrow[1].y=ptCenter.y+(savepoints[2].y-savepoints[1].y)*4/5;ptsArrow[2].x=savepoints[0].x+(savepoints[2].x-savepoints[1].x)*3/5;ptsArrow[2].y=savepoints[0].y+(savepoints[2].y-savepoints[1].y)*3/5;pts[0].x=ptCenter.x-(savepoints[2].x-savepoints[1].x)/5;pts[0].y=ptCenter.y-(savepoints[2].y-savepoints[1].y)/5;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArrow[1]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArrow[2]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;iDiagEOL_length=((Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y))+Math.sqrt((savepoints[2].x-savepoints[1].x)*(savepoints[2].x-savepoints[1].x)+(savepoints[2].y-savepoints[1].y)*(savepoints[2].y-savepoints[1].y)))/15);if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(savepoints[1].y-savepoints[2].y,savepoints[1].x-savepoints[2].x);iDeltaX1=(iDiagEOL_length*Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaY1=(iDiagEOL_length*Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaX2=(iDiagEOL_length*Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaY2=(iDiagEOL_length*Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[0],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[1],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[2],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints3);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[j]);counter++;}
- pts=null;ptsArrow=null;savepoints=null;deltapoints1=null;deltapoints2=null;deltapoints3=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMDisruptDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMDisruptDouble",exc));}else{throw exc;}}
- return counter;},GetDISMContainDouble:function(points,linetype){var counter=0;try{var pts=new Array(3);var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptPerp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var iPerpLength=0;var j=0;var dAngle1=0;var d=0;var dCosAngle1=0;var dSinAngle1=0;var iRadius=0;var iDiagEOL_length=0;var dAngle2=0;var dDeltaX1;var dDeltaY1;var dDeltaX2;var dDeltaY2;var savepoints=new Array(3);var arcpoints=new Array(17);for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcpoints);ptCenter.x=(savepoints[0].x+savepoints[1].x)/2;ptCenter.y=(savepoints[0].y+savepoints[1].y)/2;var m=new armyc2.c2sd.JavaLineArray.ref();var ptRelative=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(savepoints[0],savepoints[1],savepoints[2]);armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(savepoints[0],savepoints[1],m);if(m.value[0]!==0){if(savepoints[0].y>savepoints[1].y){if(ptRelative.x>ptCenter.x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[0],savepoints[1]);}}
- if(savepoints[0].y<savepoints[1].y){if(ptRelative.x<ptCenter.x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[0],savepoints[1]);}}}else{if(savepoints[0].x<savepoints[1].x){if(ptRelative.y>ptCenter.y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[0],savepoints[1]);}}
- if(savepoints[0].x>savepoints[1].x){if(ptRelative.y<ptCenter.y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[0],savepoints[1]);}}}
- iPerpLength=Math.sqrt((ptCenter.x-savepoints[2].x)*(ptCenter.x-savepoints[2].x)+(ptCenter.y-savepoints[2].y)*(ptCenter.y-savepoints[2].y));if(iPerpLength<1){iPerpLength=1;}
- dAngle1=Math.atan2(savepoints[0].y-savepoints[1].y,savepoints[0].x-savepoints[1].x);dCosAngle1=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);dSinAngle1=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);ptPerp.x=ptCenter.x+dCosAngle1*iPerpLength;ptPerp.y=ptCenter.y+dSinAngle1*iPerpLength;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptCenter);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=14;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;iRadius=Math.sqrt((ptCenter.x-savepoints[0].x)*(ptCenter.x-savepoints[0].x)+(ptCenter.y-savepoints[0].y)*(ptCenter.y-savepoints[0].y));iDiagEOL_length=(iPerpLength+iRadius)/20;if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle2=Math.atan2(ptPerp.y-ptCenter.y,ptPerp.x-ptCenter.x);dDeltaX1=Math.cos(dAngle2+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaY1=Math.sin(dAngle2+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaX2=Math.cos(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaY2=Math.sin(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);pts[0].x=ptCenter.x+dDeltaX1*iDiagEOL_length;pts[0].y=ptCenter.y+dDeltaY1*iDiagEOL_length;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptCenter);pts[2].x=ptCenter.x+dDeltaX2*iDiagEOL_length;pts[2].y=ptCenter.y+dDeltaY2*iDiagEOL_length;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble(ptCenter.x-iRadius,ptCenter.y-iRadius,ptCenter.x+iRadius,ptCenter.y+iRadius,savepoints[0].x,savepoints[0].y,savepoints[1].x,savepoints[1].y,arcpoints);for(j=0;j<17;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[1].x=(pts[0].x+ptCenter.x)/2;pts[1].y=(pts[0].y+ptCenter.y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);pts[1].x=(pts[0].x+ptCenter.x)/2;pts[1].y=(pts[0].y+ptCenter.y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=ptCenter.x-(ptPerp.x-ptCenter.x)*iRadius/iPerpLength;pts[0].y=ptCenter.y-(ptPerp.y-ptCenter.y)*iRadius/iPerpLength;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=ptCenter.x-dDeltaX1*iRadius;pts[0].y=ptCenter.y-dDeltaY1*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=ptCenter.x-dDeltaX2*iRadius;pts[0].y=ptCenter.y-dDeltaY2*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;dDeltaX1=Math.cos(dAngle2+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaY1=Math.sin(dAngle2+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaX2=Math.cos(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaY2=Math.sin(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);pts[0].x=ptCenter.x-dDeltaX1*iRadius;pts[0].y=ptCenter.y-dDeltaY1*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=ptCenter.x-dDeltaX2*iRadius;pts[0].y=ptCenter.y-dDeltaY2*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;dDeltaX1=Math.cos(dAngle2+3*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaY1=Math.sin(dAngle2+3*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaX2=Math.cos(dAngle2-3*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);dDeltaY2=Math.sin(dAngle2-3*armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/8);pts[0].x=ptCenter.x-dDeltaX1*iRadius;pts[0].y=ptCenter.y-dDeltaY1*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=ptCenter.x-dDeltaX2*iRadius;pts[0].y=ptCenter.y-dDeltaY2*iRadius;pts[1].x=(ptCenter.x+pts[0].x)/2;pts[1].y=(ptCenter.y+pts[0].y)/2;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts[0],pts[1]);if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],pts[0],-armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts=null;savepoints=null;arcpoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMContainDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMContainDouble",exc));}else{throw exc;}}
- return counter;},GetDISMFixDouble:function(points,linetype,clipBounds){var counter=0;try{var pts=new Array(3);var savepoints=new Array(2);var dAngle1=0;var dLength=0;var dJaggyHalfAmp=0;var dJaggyHalfPeriod=0;var dDeltaXOut=0;var dDeltaYOut=0;var dDeltaXAlong=0;var dDeltaYAlong=0;var iNumJaggies=0;var i=0;var j=0;for(j=0;j<2;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- var drawJaggies=new Boolean(true);if(clipBounds!==null){var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMinX(),clipBounds.getMinY());var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMaxX(),clipBounds.getMaxY());savepoints=armyc2.c2sd.JavaLineArray.lineutility.BoundOneSegment(savepoints[0],savepoints[1],ul,lr);}
- if(savepoints===null){savepoints=new Array(2);for(j=0;j<2;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- drawJaggies=new Boolean(false);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);dAngle1=Math.atan2(savepoints[0].y-savepoints[1].y,savepoints[0].x-savepoints[1].x);dLength=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));dJaggyHalfAmp=dLength/15;if(dJaggyHalfAmp>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(dJaggyHalfAmp<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dJaggyHalfPeriod=dJaggyHalfAmp/1.5;dDeltaXOut=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dJaggyHalfAmp;dDeltaYOut=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dJaggyHalfAmp;dDeltaXAlong=Math.cos(dAngle1)*dJaggyHalfPeriod;dDeltaYAlong=Math.sin(dAngle1)*dJaggyHalfPeriod;iNumJaggies=Math.floor((dLength/dJaggyHalfPeriod))-3;i=2;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);pts[1].x=savepoints[1].x+dDeltaXAlong*1.5;pts[1].y=savepoints[1].y+dDeltaYAlong*1.5;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=savepoints[1].x+dDeltaXOut+dDeltaXAlong*i;pts[0].y=savepoints[1].y+dDeltaYOut+dDeltaYAlong*i;i++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;if((drawJaggies).booleanValue())
- while(i<=iNumJaggies){pts[1].x=savepoints[1].x-dDeltaXOut+dDeltaXAlong*i;pts[1].y=savepoints[1].y-dDeltaYOut+dDeltaYAlong*i;i++;pts[2].x=savepoints[1].x+dDeltaXOut+dDeltaXAlong*i;pts[2].y=savepoints[1].y+dDeltaYOut+dDeltaYAlong*i;i++;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[2]);}
- pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);pts[0].x=savepoints[1].x+dDeltaXAlong*i;pts[0].y=savepoints[1].y+dDeltaYAlong*i;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=savepoints[0].x+dDeltaXOut/1.5-dDeltaXAlong;pts[0].y=savepoints[0].y+dDeltaYOut/1.5-dDeltaYAlong;pts[2].x=savepoints[0].x-dDeltaXOut/1.5-dDeltaXAlong;pts[2].y=savepoints[0].y-dDeltaYOut/1.5-dDeltaYAlong;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);if(linetype===23172000){points[counter].style=9;}else{points[counter].style=0;}
- counter++;}
- if(linetype===23172000){points[counter-1].style=10;}else{points[counter-1].style=5;}
- pts=null;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMFixDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMFixDouble",exc));}else{throw exc;}}
- return counter;},GetDISMClearDouble:function(points,linetype){var counter=0;try{var savepoints=new Array(3);var j=0;var pts=new Array(2);var ptsArrow=new Array(3);var ctrX=((points[0].x+points[1].x)/2);var ctrY=((points[0].y+points[1].y)/2);var iDeltaX1=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY1=new armyc2.c2sd.JavaLineArray.ref();var iDeltaX2=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY2=new armyc2.c2sd.JavaLineArray.ref();var deltapoints1=new Array(4);var deltapoints2=new Array(4);var deltapoints3=new Array(4);for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsArrow);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints3);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;pts[0].x=ctrX;pts[0].y=ctrY;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);ptsArrow[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=(savepoints[0].x+ctrX)/2;pts[0].y=(savepoints[0].y+ctrY)/2;pts[1].x=savepoints[2].x+savepoints[0].x-pts[0].x;pts[1].y=savepoints[2].y+savepoints[0].y-pts[0].y;ptsArrow[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=(savepoints[1].x+ctrX)/2;pts[0].y=(savepoints[1].y+ctrY)/2;pts[1].x=savepoints[2].x+savepoints[1].x-pts[0].x;pts[1].y=savepoints[2].y+savepoints[1].y-pts[0].y;ptsArrow[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX1,iDeltaY1,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX2,iDeltaY2,-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[0],iDeltaX1.value[0],iDeltaY1.value[0],iDeltaX2.value[0],iDeltaY2.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[1],iDeltaX1.value[0],iDeltaY1.value[0],iDeltaX2.value[0],iDeltaY2.value[0],deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[2],iDeltaX1.value[0],iDeltaY1.value[0],iDeltaX2.value[0],iDeltaY2.value[0],deltapoints3);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[j]);counter++;}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[j]);counter++;}
- pts=null;savepoints=null;ptsArrow=null;deltapoints1=null;deltapoints2=null;deltapoints3=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMClearDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMClearDouble",exc));}else{throw exc;}}
- return counter;},IsSeizeArcReversed:function(pPoints){try{var dAngle1=Math.atan2(pPoints[0].y-pPoints[1].y,pPoints[0].x-pPoints[1].x);var dDeltaX1=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);var dDeltaY1=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);var dDeltaX2=Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);var dDeltaY2=Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);var dChordLength=Math.sqrt((pPoints[1].x-pPoints[0].x)*(pPoints[1].x-pPoints[0].x)+(pPoints[1].y-pPoints[0].y)*(pPoints[1].y-pPoints[0].y));var dArcRadius=dChordLength/1.414213562373;var ptArcCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptArcCenter.x=pPoints[0].x-dDeltaX1*dArcRadius;ptArcCenter.y=pPoints[0].y-dDeltaY1*dArcRadius;var d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptArcCenter,pPoints[2]);var ptArcCenterReversed=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptArcCenterReversed.x=pPoints[0].x-dDeltaX2*dArcRadius;ptArcCenterReversed.y=pPoints[0].y-dDeltaY2*dArcRadius;var dReversed=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptArcCenterReversed,pPoints[2]);if(dReversed>d){return true;}else{return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"IsSeizeArcReversed",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside IsSeizeArcReversed",exc));}else{throw exc;}}
- return false;},GetDISMSeizeDouble:function(points,linetype,radius){var counter=0;try{var ptArcCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptArcStart=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var savepoints=new Array(3);var scale=0.9;var iCircleRadius=(25*scale);var arcpoints=new Array(17);var pts=new Array(3);var dAngle1=0;var dDeltaX1=0;var dDeltaY1=0;var dDeltaX2=0;var dDeltaY2=0;var dChordLength=0;var dArcRadius=0;var j=0;var dDeltaX3=0;var dDeltaY3=0;var iDiagEOL_length=0;var factor=1;if(radius>0)
- iCircleRadius=radius;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- var client=armyc2.c2sd.JavaLineArray.CELineArray.getClient();if(!client.startsWith("cpof")&&radius===0){dArcRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],savepoints[1]);if(iCircleRadius>dArcRadius/2)
- iCircleRadius=dArcRadius/2;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcpoints);armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble(savepoints[0].x-iCircleRadius,savepoints[0].y-iCircleRadius,savepoints[0].x+iCircleRadius,savepoints[0].y+iCircleRadius,savepoints[0].x,savepoints[0].y,savepoints[0].x,savepoints[0].y,arcpoints);for(j=0;j<17;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;dAngle1=Math.atan2(savepoints[0].y-savepoints[1].y,savepoints[0].x-savepoints[1].x);dDeltaX1=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaY1=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaX2=Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);dDeltaY2=Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);var isArcReversed=armyc2.c2sd.JavaLineArray.DISMSupport.IsSeizeArcReversed(savepoints);if(isArcReversed===false){ptArcStart.x=savepoints[0].x-dDeltaX2*iCircleRadius;ptArcStart.y=savepoints[0].y-dDeltaY2*iCircleRadius;dChordLength=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));dArcRadius=dChordLength/1.414213562373;ptArcCenter.x=savepoints[0].x-dDeltaX1*dArcRadius;ptArcCenter.y=savepoints[0].y-dDeltaY1*dArcRadius;armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-dArcRadius),(ptArcCenter.y-dArcRadius),(ptArcCenter.x+dArcRadius),(ptArcCenter.y+dArcRadius),savepoints[1].x,savepoints[1].y,ptArcStart.x,ptArcStart.y,arcpoints);}else{ptArcStart.x=savepoints[0].x-dDeltaX1*iCircleRadius;ptArcStart.y=savepoints[0].y-dDeltaY1*iCircleRadius;dChordLength=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));dArcRadius=dChordLength/1.414213562373;ptArcCenter.x=savepoints[0].x-dDeltaX2*dArcRadius;ptArcCenter.y=savepoints[0].y-dDeltaY2*dArcRadius;armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-dArcRadius),(ptArcCenter.y-dArcRadius),(ptArcCenter.x+dArcRadius),(ptArcCenter.y+dArcRadius),ptArcStart.x,ptArcStart.y,savepoints[1].x,savepoints[1].y,arcpoints);}
- for(j=0;j<17;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;if(dChordLength/8>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){factor=dChordLength/(8*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);}
- if(factor===0){factor=1;}
- if(isArcReversed===false){pts[0].x=savepoints[1].x-(savepoints[1].x-savepoints[0].x)/(8*factor);pts[0].y=savepoints[1].y-(savepoints[1].y-savepoints[0].y)/(8*factor);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);dDeltaX3=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);dDeltaY3=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);iDiagEOL_length=(dChordLength/8);pts[2].x=savepoints[1].x+dDeltaX3*iDiagEOL_length/factor;pts[2].y=savepoints[1].y+dDeltaY3*iDiagEOL_length/factor;}else{pts[0].x=savepoints[1].x-(savepoints[1].x-savepoints[0].x)/(8*factor);pts[0].y=savepoints[1].y-(savepoints[1].y-savepoints[0].y)/(8*factor);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);dDeltaX3=Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);dDeltaY3=Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2);iDiagEOL_length=(dChordLength/8);pts[2].x=savepoints[1].x+dDeltaX3*iDiagEOL_length/factor;pts[2].y=savepoints[1].y+dDeltaY3*iDiagEOL_length/factor;}
- for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;savepoints=null;arcpoints=null;pts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMSeizeDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMSeizeDouble",exc));}else{throw exc;}}
- return counter;},side:function(x1,y1,x2,y2,px,py){var dx1;var dx2;var dy1;var dy2;try{var o;dx1=x2-x1;dy1=y2-y1;dx2=px-x1;dy2=py-y1;o=(dx1*dy2)-(dy1*dx2);if(o>0.0){return(armyc2.c2sd.JavaLineArray.DISMSupport.LEFT_SIDE);}
- if(o<0.0){return(armyc2.c2sd.JavaLineArray.DISMSupport.RIGHT_SIDE);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"side",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside side",exc));}else{throw exc;}}
- return(armyc2.c2sd.JavaLineArray.DISMSupport.COLINEAR);},GetDISMRIPDouble:function(points,linetype){var counter=0;try{var pts=new Array(2);var savepoints=new Array(4);var j=0;var iLengthPt0Pt1=0;var iDiagEOL_length=0;var dAngle1=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;var iLengthPt2Pt3=0;var iRadius=0;var deltapoints=new Array(4);var arcpoints=new Array(17);var ptArcCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var clockwise=false;var side01=armyc2.c2sd.JavaLineArray.DISMSupport.side(points[0].x,points[0].y,points[1].x,points[1].y,points[2].x,points[2].y);var side12=armyc2.c2sd.JavaLineArray.DISMSupport.side(points[1].x,points[1].y,points[2].x,points[2].y,points[3].x,points[3].y);if(side01===armyc2.c2sd.JavaLineArray.DISMSupport.RIGHT_SIDE&&side12===armyc2.c2sd.JavaLineArray.DISMSupport.RIGHT_SIDE)
- clockwise=true;else if(side01===armyc2.c2sd.JavaLineArray.DISMSupport.RIGHT_SIDE&&side12===armyc2.c2sd.JavaLineArray.DISMSupport.COLINEAR)
- clockwise=true;else if(side01===armyc2.c2sd.JavaLineArray.DISMSupport.COLINEAR&&side12===armyc2.c2sd.JavaLineArray.DISMSupport.RIGHT_SIDE)
- clockwise=true;for(j=0;j<4;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcpoints);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[3]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);iLengthPt0Pt1=Math.sqrt((pts[1].x-pts[0].x)*(pts[1].x-pts[0].x)+(pts[1].y-pts[0].y)*(pts[1].y-pts[0].y));iDiagEOL_length=iLengthPt0Pt1/8;if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(pts[1].y-pts[0].y,pts[1].x-pts[0].x);iDeltaX1=(iDiagEOL_length*Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY1=(iDiagEOL_length*Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaX2=(iDiagEOL_length*Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY2=(iDiagEOL_length*Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(pts[0],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints[j]);points[counter].style=0;counter++;}
- points[counter-3].style=5;points[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[3]);iLengthPt2Pt3=Math.sqrt((pts[1].x-pts[0].x)*(pts[1].x-pts[0].x)+(pts[1].y-pts[0].y)*(pts[1].y-pts[0].y));iDiagEOL_length=iLengthPt2Pt3/8;if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(pts[1].y-pts[0].y,pts[1].x-pts[0].x);iDeltaX1=(iDiagEOL_length*Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY1=(iDiagEOL_length*Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaX2=(iDiagEOL_length*Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));iDeltaY2=(iDiagEOL_length*Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4));armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(pts[0],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints[j]);points[counter].style=0;counter++;}
- points[counter-3].style=5;points[counter-1].style=5;iRadius=(Math.sqrt((savepoints[2].x-savepoints[1].x)*(savepoints[2].x-savepoints[1].x)+(savepoints[2].y-savepoints[1].y)*(savepoints[2].y-savepoints[1].y))/2);ptArcCenter.x=(savepoints[1].x+savepoints[2].x)/2;ptArcCenter.y=(savepoints[1].y+savepoints[2].y)/2;if(clockwise===false){armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-iRadius),(ptArcCenter.y-iRadius),(ptArcCenter.x+iRadius),(ptArcCenter.y+iRadius),savepoints[2].x,savepoints[2].y,savepoints[1].x,savepoints[1].y,arcpoints);}else{armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptArcCenter.x-iRadius),(ptArcCenter.y-iRadius),(ptArcCenter.x+iRadius),(ptArcCenter.y+iRadius),savepoints[1].x,savepoints[1].y,savepoints[2].x,savepoints[2].y,arcpoints);}
- for(j=0;j<17;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;pts=null;savepoints=null;deltapoints=null;arcpoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMRIPDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMRIPDouble",exc));}else{throw exc;}}
- return counter;},GetDISMByDifDouble:function(points,linetype,clipBounds){var counter=0;try{var pointsCorner=new Array(2);var rectpts=new Array(4);var savepoints=new Array(3);var savepoints2=new Array(2);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var pts=new Array(3);var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;var dAngle1=0;var dLength=0;var dJaggyHalfAmp=0;var dJaggyHalfPeriod=0;var dDeltaXOut=0;var dDeltaYOut=0;var dDeltaXAlong=0;var dDeltaYAlong=0;var iNumJaggies=0;var i=0;var j=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);savepoints2[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[1]);savepoints2[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[2]);if(clipBounds!==null){var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMinX(),clipBounds.getMinY());var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMaxX(),clipBounds.getMaxY());savepoints2=armyc2.c2sd.JavaLineArray.lineutility.BoundOneSegment(savepoints2[0],savepoints2[1],ul,lr);}
- var drawJaggies=new Boolean(true);if(savepoints2===null){savepoints2=new Array(2);savepoints2[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[1]);savepoints2[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[2]);drawJaggies=new Boolean(false);}
- for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[j]);points[counter].style=0;counter++;}
- points[1].style=5;points[counter-1].style=5;dAngle1=Math.atan2(savepoints2[0].y-savepoints2[1].y,savepoints2[0].x-savepoints2[1].x);dLength=Math.sqrt((savepoints2[1].x-savepoints2[0].x)*(savepoints2[1].x-savepoints2[0].x)+(savepoints2[1].y-savepoints2[0].y)*(savepoints2[1].y-savepoints2[0].y));dJaggyHalfAmp=dLength/15;if(dJaggyHalfAmp>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(dJaggyHalfAmp<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dJaggyHalfPeriod=dJaggyHalfAmp/1.5;dDeltaXOut=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dJaggyHalfAmp;dDeltaYOut=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dJaggyHalfAmp;dDeltaXAlong=Math.cos(dAngle1)*dJaggyHalfPeriod;dDeltaYAlong=Math.sin(dAngle1)*dJaggyHalfPeriod;iNumJaggies=Math.floor((dLength/dJaggyHalfPeriod))-3;i=2;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints2[1]);pts[1].x=savepoints2[1].x+dDeltaXAlong*1.5;pts[1].y=savepoints2[1].y+dDeltaYAlong*1.5;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=savepoints2[1].x+dDeltaXOut+dDeltaXAlong*i;pts[0].y=savepoints2[1].y+dDeltaYOut+dDeltaYAlong*i;i++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;if((drawJaggies).booleanValue())
- while(i<=iNumJaggies){pts[1].x=savepoints2[1].x-dDeltaXOut+dDeltaXAlong*i;pts[1].y=savepoints2[1].y-dDeltaYOut+dDeltaYAlong*i;i++;pts[2].x=savepoints2[1].x+dDeltaXOut+dDeltaXAlong*i;pts[2].y=savepoints2[1].y+dDeltaYOut+dDeltaYAlong*i;i++;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[2]);}
- pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);pts[0].x=savepoints2[1].x+dDeltaXAlong*i;pts[0].y=savepoints2[1].y+dDeltaYAlong*i;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints2[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=10;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=10;counter++;pointsCorner=null;rectpts=null;savepoints=null;savepoints2=null;deltapoints1=null;deltapoints2=null;pts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMByDifDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMByDifDouble",exc));}else{throw exc;}}
- return counter;},GetDISMPenetrateDouble:function(points,linetype){try{var arrowpts=new Array(3);var midpt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var savepoints=new Array(3);var j=0;var d=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arrowpts);points[0].x=savepoints[0].x;points[0].y=savepoints[0].y;points[0].style=0;points[1].x=savepoints[1].x;points[1].y=savepoints[1].y;points[1].style=5;midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(savepoints[0],savepoints[1],0);points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);points[3].style=5;d=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(savepoints,3);if(d/5>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){d=5*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(d/5<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){d=5*armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- var client=armyc2.c2sd.JavaLineArray.CELineArray.getClient();if(client.matches("cpof3d")||client.matches("cpof2d")){if(d<400)
- d=400;}else{if(d<150)
- d=150;}
- if(d>600)
- d=600;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(points[2],points[3],Math.floor(Math.floor(d)/20),Math.floor(Math.floor(d)/20),arrowpts,0);for(j=0;j<3;j++){points[4+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arrowpts[j]);}
- arrowpts=null;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMPenetrateDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMPenetrateDouble",exc));}else{throw exc;}}
- return;},GetDISMByImpDouble:function(points,linetype){var counter=0;try{var j=0;var pointsCorner=new Array(2);var rectpts=new Array(4);var savepoints=new Array(3);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var midpt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pts=new Array(6);var ptRelative=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;var dMBR=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(points,3);if(dMBR>40*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){dMBR=40*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(dMBR<5*armyc2.c2sd.JavaLineArray.DISMSupport.minLength){dMBR=5*armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- if(dMBR>250)
- dMBR=250;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[1]);points[counter].style=0;counter++;midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(rectpts[1],rectpts[2],0);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(rectpts[1],midpt,-5,5);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(rectpts[1],midpt,5,5);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=5;counter++;ptRelative=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(rectpts[0],rectpts[1],pts[0]);pts[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptRelative,pts[0],-dMBR/40);pts[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptRelative,pts[0],dMBR/40);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[2]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[3]);points[counter].style=5;counter++;ptRelative=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(rectpts[2],rectpts[3],pts[1]);pts[4]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptRelative,pts[1],-dMBR/40);pts[5]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptRelative,pts[1],dMBR/40);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[4]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[5]);points[counter].style=5;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[2]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[3]);points[counter].style=5;counter++;bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=10;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=10;counter++;pointsCorner=null;rectpts=null;savepoints=null;deltapoints1=null;deltapoints2=null;pts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMByImpDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMByImpDouble",exc));}else{throw exc;}}
- return counter;},GetDISMSupportByFireDouble:function(points,linetype){var counter=0;try{var pts=new Array(3);var savepoints=new Array(4);var j=0;var iDiagEOL_length=0;var dAngle1=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;for(j=0;j<4;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.DISMSupport.ReorderSptByFirePoints(savepoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;iDiagEOL_length=(Math.sqrt((savepoints[0].x-savepoints[1].x)*(savepoints[0].x-savepoints[1].x)+(savepoints[0].y-savepoints[1].y)*(savepoints[0].y-savepoints[1].y))/10);if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(savepoints[0].y-savepoints[2].y,savepoints[0].x-savepoints[2].x);iDeltaX1=(Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY1=(Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaX2=(Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY2=(Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);pts[0].x=savepoints[2].x+iDeltaX1;pts[0].y=savepoints[2].y+iDeltaY1;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);pts[2].x=savepoints[2].x+iDeltaX2;pts[2].y=savepoints[2].y+iDeltaY2;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[3]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;dAngle1=Math.atan2(savepoints[1].y-savepoints[3].y,savepoints[1].x-savepoints[3].x);iDeltaX1=(Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY1=(Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaX2=(Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY2=(Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);pts[0].x=savepoints[3].x+iDeltaX1;pts[0].y=savepoints[3].y+iDeltaY1;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[3]);pts[2].x=savepoints[3].x+iDeltaX2;pts[2].y=savepoints[3].y+iDeltaY2;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;dAngle1=Math.atan2(savepoints[1].y-savepoints[0].y,savepoints[1].x-savepoints[0].x);iDiagEOL_length*=2;iDeltaX1=(Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length);iDeltaY1=(Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length);iDeltaX2=(Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length);iDeltaY2=(Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length);pts[0].x=savepoints[0].x-iDeltaX1;pts[0].y=savepoints[0].y-iDeltaY1;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=savepoints[1].x+iDeltaX2;pts[0].y=savepoints[1].y+iDeltaY2;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts=null;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMSupportbyFireDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMSupportByFireDouble",exc));}else{throw exc;}}
- return counter;},ReorderAtkByFirePoints:function(points){try{var savepoints=new Array(3);var ptAboveLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptBelowLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var distToLine=0;var distanceToPointAboveLine=0;var distanceToPointBelowLine=0;var distanceToPointLeftOfLine=0;var distanceToPointRightOfLine=0;for(var j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- if(Math.abs(savepoints[1].x-savepoints[2].x)>2){distToLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(savepoints[1],savepoints[2],savepoints[0]);ptAboveLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(savepoints[1],savepoints[2],savepoints[2],2,distToLine);ptBelowLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(savepoints[1],savepoints[2],savepoints[2],3,distToLine);distanceToPointAboveLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptAboveLine);distanceToPointBelowLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptBelowLine);if(distanceToPointAboveLine<distanceToPointBelowLine){if(savepoints[2].x<savepoints[1].x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[1],savepoints[2]);}}else{if(savepoints[2].x>savepoints[1].x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[1],savepoints[2]);}}}else{distToLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(savepoints[1],savepoints[2],savepoints[0]);ptLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(savepoints[1],savepoints[2],savepoints[2],0,distToLine);ptRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(savepoints[1],savepoints[2],savepoints[2],1,distToLine);distanceToPointLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptLeftOfLine);distanceToPointRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptRightOfLine);if(distanceToPointRightOfLine<distanceToPointLeftOfLine){if(savepoints[2].y<savepoints[1].y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[1],savepoints[2]);}}else{if(savepoints[2].y>savepoints[1].y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(savepoints[1],savepoints[2]);}}}
- points[1].x=savepoints[1].x;points[1].y=savepoints[1].y;points[2].x=savepoints[2].x;points[2].y=savepoints[2].y;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"ReorderAtkByFirePoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMSupportByFireDouble",exc));}else{throw exc;}}},ReorderSptByFirePoints:function(points){try{var ptAboveLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptBelowLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var distToLine=0;var distanceToPointAboveLine=0;var distanceToPointBelowLine=0;var distanceToPointLeftOfLine=0;var distanceToPointRightOfLine=0;var midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(points[0],points[1],0);if(Math.abs(points[2].x-points[3].x)>2){distToLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(points[1],points[2],midpt);ptAboveLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(points[1],points[2],points[2],2,distToLine);ptBelowLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(points[1],points[2],points[2],3,distToLine);distanceToPointAboveLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(points[0],ptAboveLine);distanceToPointBelowLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(points[0],ptBelowLine);if(distanceToPointAboveLine<distanceToPointBelowLine){if(points[2].x<points[1].x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[0],points[1]);armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[2],points[3]);}}else{if(points[2].x>points[1].x){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[0],points[1]);armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[2],points[3]);}}}else{distToLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(points[1],points[2],midpt);ptLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(points[1],points[2],points[2],0,distToLine);ptRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(points[1],points[2],points[2],1,distToLine);distanceToPointLeftOfLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(points[0],ptLeftOfLine);distanceToPointRightOfLine=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(points[0],ptRightOfLine);if(distanceToPointLeftOfLine<distanceToPointRightOfLine){if(points[2].y>points[1].y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[0],points[1]);armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[2],points[3]);}}else{if(points[2].y<points[1].y){armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[0],points[1]);armyc2.c2sd.JavaLineArray.lineutility.Reverse2Points(points[2],points[3]);}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"ReorderSptByFire",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ReorderSptByFirePoints",exc));}else{throw exc;}}},GetDISMATKBYFIREDouble:function(points,linetype){var counter=0;try{var pts=new Array(3);var ptMid=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var savepoints=new Array(3);var j=0;var iDiagEOL_length=0;var dAngle1=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.DISMSupport.ReorderAtkByFirePoints(savepoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;ptMid.x=(savepoints[1].x+savepoints[2].x)/2;ptMid.y=(savepoints[1].y+savepoints[2].y)/2;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptMid);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;iDiagEOL_length=((Math.sqrt((savepoints[1].x-savepoints[2].x)*(savepoints[1].x-savepoints[2].x)+(savepoints[1].y-savepoints[2].y)*(savepoints[1].y-savepoints[2].y))+Math.sqrt((savepoints[0].x-ptMid.x)*(savepoints[0].x-ptMid.x)+(savepoints[0].y-ptMid.y)*(savepoints[0].y-ptMid.y)))/20);if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength/5){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength/5;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(ptMid.y-savepoints[0].y,ptMid.x-savepoints[0].x);iDeltaX1=(Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY1=(Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaX2=(Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);iDeltaY2=(Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iDiagEOL_length);pts[0].x=savepoints[0].x+iDeltaX1;pts[0].y=savepoints[0].y+iDeltaY1;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[2].x=savepoints[0].x+iDeltaX2;pts[2].y=savepoints[0].y+iDeltaY2;for(j=0;j<3;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;dAngle1=Math.atan2(savepoints[1].y-savepoints[2].y,savepoints[1].x-savepoints[2].x);iDeltaX1=(Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length*2);iDeltaY1=(Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length*2);iDeltaX2=(Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length*2);iDeltaY2=(Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4)*iDiagEOL_length*2);pts[0].x=savepoints[1].x+iDeltaX1;pts[0].y=savepoints[1].y+iDeltaY1;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts[0].x=savepoints[2].x-iDeltaX2;pts[0].y=savepoints[2].y-iDeltaY2;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;pts=null;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMAtkByFireDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMAtkByFireDouble",exc));}else{throw exc;}}
- return counter;},GetDISMGapDouble:function(points,linetype){try{var savepoints=new Array(4);var pts=new Array(2);var j=0;var dMBR=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(points,4);for(j=0;j<4;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);if(dMBR/10>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){dMBR=10*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(dMBR/10<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){dMBR=10*armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- points[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[0].style=0;points[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[1].style=5;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);points[2].style=0;points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[3]);points[3].style=5;var dist=dMBR/10;if(dist>20)
- dist=20;var dist2=dist;switch(linetype){case 23222000:dist=1.5*dist;dist2=dist/2;break;default:dist2=dist;break;}
- pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[1],savepoints[0],dist);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[2],savepoints[0],dist2);points[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[0]);points[4].style=0;points[5]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],5);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[0],savepoints[1],dist);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[3],savepoints[1],dist2);points[6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);points[6].style=0;points[7]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],5);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[0],savepoints[2],dist2);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[3],savepoints[2],dist);points[8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);points[8].style=0;points[9]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],5);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[1],savepoints[3],dist2);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(savepoints[2],savepoints[3],dist);points[10]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[3]);points[10].style=0;points[11]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],5);pts=null;savepoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMGapDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMGapDouble",exc));}else{throw exc;}}
- return 12;},GetDISMMinefieldDisruptDouble:function(points,linetype){var counter=0;try{var pts=new Array(2);var ptsArrow=new Array(3);var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;var savepoints=new Array(3);var dAngle1=0;var d=0;var dist=0;var deltapoints1=new Array(4);var deltapoints2=new Array(4);var deltapoints3=new Array(4);var iDiagEOL_length=0;var iDeltaX1=0;var iDeltaY1=0;var iDeltaX2=0;var iDeltaY2=0;var ptTail=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsArrow);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints3);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=5;counter++;ptCenter.x=(savepoints[0].x+savepoints[1].x)/2;ptCenter.y=(savepoints[0].y+savepoints[1].y)/2;ptsArrow[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);ptsArrow[1].x=ptCenter.x+(savepoints[2].x-savepoints[0].x)*4/5;ptsArrow[1].y=ptCenter.y+(savepoints[2].y-savepoints[0].y)*4/5;ptsArrow[2].x=savepoints[1].x+(savepoints[2].x-savepoints[0].x)*3/5;ptsArrow[2].y=savepoints[1].y+(savepoints[2].y-savepoints[0].y)*3/5;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArrow[2]);points[counter].style=5;counter++;pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArrow[1]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptCenter);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[2],savepoints[0]);d=dist;if(d>5*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){d=5*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(d<5*armyc2.c2sd.JavaLineArray.DISMSupport.minLength){d=5*armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- ptTail.x=(savepoints[0].x+ptCenter.x)/2;ptTail.y=(savepoints[0].y+ptCenter.y)/2;pts[0].x=ptTail.x-(savepoints[2].x-savepoints[0].x)/5;pts[0].y=ptTail.y-(savepoints[2].y-savepoints[0].y)/5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[0],ptTail,-d/5);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptTail);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=5;counter++;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArrow[0]);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);points[counter].style=0;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);points[counter].style=5;counter++;iDiagEOL_length=((Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y))+Math.sqrt((savepoints[2].x-savepoints[1].x)*(savepoints[2].x-savepoints[1].x)+(savepoints[2].y-savepoints[1].y)*(savepoints[2].y-savepoints[1].y)))/15);if(iDiagEOL_length>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(iDiagEOL_length<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){iDiagEOL_length=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- dAngle1=Math.atan2(savepoints[0].y-savepoints[2].y,savepoints[0].x-savepoints[2].x);iDeltaX1=(iDiagEOL_length*Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaY1=(iDiagEOL_length*Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaX2=(iDiagEOL_length*Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));iDeltaY2=(iDiagEOL_length*Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6));armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[0],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[1],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(ptsArrow[2],iDeltaX1,iDeltaY1,iDeltaX2,iDeltaY2,deltapoints3);points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=10;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=10;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints3[3]);points[counter].style=10;counter++;pts=null;ptsArrow=null;savepoints=null;deltapoints1=null;deltapoints2=null;deltapoints3=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMMinefieldDisruptDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMMinefieldDisruptDouble",exc));}else{throw exc;}}
- return counter;},GetDISMLinearTargetDouble:function(points,linetype,vblCounter){var counter=0;try{var j=0;var dMBR=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(points,vblCounter-4);if(dMBR/20>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength){dMBR=20*armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;}
- if(dMBR/20<armyc2.c2sd.JavaLineArray.DISMSupport.minLength){dMBR=20*armyc2.c2sd.JavaLineArray.DISMSupport.minLength;}
- if(dMBR<150){dMBR=150;}
- if(dMBR>250)
- dMBR=250;for(j=0;j<vblCounter-4;j++){points[counter].style=0;counter++;}
- points[counter-1].style=5;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(points[0],points[1],points[0],dMBR/20,0);counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(points[0],points[1],points[0],-dMBR/20,5);counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(points[vblCounter-5],points[vblCounter-6],points[vblCounter-5],dMBR/20,0);counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(points[vblCounter-5],points[vblCounter-6],points[vblCounter-5],-dMBR/20,5);counter++;if(linetype===24260000){points[0].style=6;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMLinearTargetDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMLinearTargetDouble",exc));}else{throw exc;}}
- return counter;},GetDISMBlockDouble2:function(points,linetype){try{var ptRelative=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[2]);var midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(points[0],points[1],0);var j=0;points[0].style=0;points[1].style=5;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptRelative);if(linetype===21100000){points[2].style=14;}
- if(linetype===24260000){points[2].style=6;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMBlockDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMBlockDouble2",exc));}else{throw exc;}}
- return;},GetDISMPAADouble:function(points,linetype){try{var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(points[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var midpt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,midpt,d/2,0);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,midpt,-d/2,0);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt2);points[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);points[0].style=14;points[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);points[1].style=14;points[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);points[2].style=14;points[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);points[3].style=14;points[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);points[4].style=5;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMPAADouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMPAADouble",exc));}else{throw exc;}}
- return;},ReverseDelayArc:function(points){try{var m=new armyc2.c2sd.JavaLineArray.ref();var bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(points[0],points[1],m);if(bolVertical===true){if(points[0].x<points[1].x){if(points[2].y<points[1].y){return false;}else{return true;}}else{if(points[2].y<points[1].y){return true;}else{return false;}}}else{if(points[1].y<points[0].y){if(points[1].x<points[2].x){return true;}else{return false;}}else{if(points[1].x<points[2].x){return false;}else{return true;}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"ReverseDelayArc",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDelayArc",exc));}else{throw exc;}}
- return false;},DrawEndpieceDeltasDouble:function(point,iDelta1,iDelta2,iDelta3,iDelta4,deltapoints){try{deltapoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(point);deltapoints[0].style=0;deltapoints[1].x=point.x+iDelta1;deltapoints[1].y=point.y+iDelta2;deltapoints[1].style=5;deltapoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(point);deltapoints[2].style=0;deltapoints[3].x=point.x+iDelta3;deltapoints[3].y=point.y+iDelta4;deltapoints[3].style=5;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"DrawEndpieceDeltasDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawEndpieceDeltasDouble",exc));}else{throw exc;}}},GetDISMEasyDouble:function(points,linetype){var counter=0;try{var j=0;var pointsCorner=new Array(2);var rectpts=new Array(4);var savepoints=new Array(3);var deltapoints1=new Array(4);var deltapoints2=new Array(4);var iDeltaX=new armyc2.c2sd.JavaLineArray.ref();var iDeltaY=new armyc2.c2sd.JavaLineArray.ref();var bPointsRight=0;for(j=0;j<3;j++){savepoints[j]=points[j];}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(rectpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints1);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(deltapoints2);armyc2.c2sd.JavaLineArray.DISMSupport.DrawOpenRectangleDouble(savepoints,pointsCorner,rectpts);for(j=0;j<4;j++){points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(rectpts[j]);points[counter].style=0;counter++;}
- points[counter-1].style=5;bPointsRight=armyc2.c2sd.JavaLineArray.DISMSupport.DetermineDirectionDouble(savepoints);armyc2.c2sd.JavaLineArray.DISMSupport.CalcEndpieceDeltasDouble(savepoints,iDeltaX,iDeltaY,armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/4);if((savepoints[0].y-savepoints[1].y)<0){if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}}else{if(bPointsRight!==0){armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaY.value[0],-iDeltaX.value[0],iDeltaX.value[0],iDeltaY.value[0],deltapoints2);}else{armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[0],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints1);armyc2.c2sd.JavaLineArray.DISMSupport.DrawEndpieceDeltasDouble(savepoints[1],iDeltaX.value[0],iDeltaY.value[0],iDeltaY.value[0],-iDeltaX.value[0],deltapoints2);}}
- points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints1[3]);points[counter].style=10;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[1]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[0]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=9;counter++;points[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(deltapoints2[3]);points[counter].style=10;counter++;pointsCorner=null;rectpts=null;savepoints=null;deltapoints1=null;deltapoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"GetDISMEasyDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMEasyDouble",exc));}else{throw exc;}}
- return counter;},AmbushPointsDouble:function(pLinePoints){var counter=0;try{var pts=new Array(3);var savepoints=new Array(3);var ptMid=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var dRadius=0;var d=0;var dAngle1=0;var dAngle1c=0;var dAngle2c=0;var dAngle12c=0;var dAngle0=0;var arcpoints=new Array(17);var dAngleTic=0;var dDeltaX1=0;var dDeltaY1=0;var dDeltaX2=0;var dDeltaY2=0;var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;var i=0;var iArrowLength=0;for(j=0;j<3;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcpoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pts);ptMid.x=(savepoints[1].x+savepoints[2].x)/2;ptMid.y=(savepoints[1].y+savepoints[2].y)/2;dRadius=Math.sqrt((ptMid.x-savepoints[2].x)*(ptMid.x-savepoints[2].x)+(ptMid.y-savepoints[2].y)*(ptMid.y-savepoints[2].y));var dRadius2=Math.sqrt((ptMid.x-savepoints[1].x)*(ptMid.x-savepoints[1].x)+(ptMid.y-savepoints[1].y)*(ptMid.y-savepoints[1].y));dAngle1=Math.atan2(savepoints[1].y-savepoints[2].y,savepoints[1].x-savepoints[2].x);ptCenter.x=ptMid.x+Math.cos(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dRadius;ptCenter.y=ptMid.y+Math.sin(dAngle1-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dRadius;var dAngle2=Math.atan2(savepoints[2].y-savepoints[1].y,savepoints[2].x-savepoints[1].x);var ptCenter2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptCenter2.x=ptMid.x+Math.cos(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dRadius;ptCenter2.y=ptMid.y+Math.sin(dAngle2-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*dRadius;var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptCenter);var dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(savepoints[0],ptCenter2);if(dist2>dist){var ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[1]);savepoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[2]);savepoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptTemp);ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptCenter2);dAngle1=dAngle2;}
- dRadius=Math.sqrt((savepoints[1].x-ptCenter.x)*(savepoints[1].x-ptCenter.x)+(savepoints[1].y-ptCenter.y)*(savepoints[1].y-ptCenter.y));armyc2.c2sd.JavaLineArray.DISMSupport.ArcApproximationDouble((ptCenter.x-dRadius),(ptCenter.y-dRadius),(ptCenter.x+dRadius),(ptCenter.y+dRadius),savepoints[2].x,savepoints[2].y,savepoints[1].x,savepoints[1].y,arcpoints);for(j=0;j<17;j++){pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcpoints[j]);pLinePoints[counter].style=0;counter++;}
- pLinePoints[counter-1].style=5;pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savepoints[0]);dAngle1c=Math.atan2(ptCenter.y-savepoints[1].y,ptCenter.x-savepoints[1].x);dAngle2c=Math.atan2(ptCenter.y-savepoints[2].y,ptCenter.x-savepoints[2].x);dAngle12c=(dAngle1c+dAngle2c)/2;if((dAngle1c>0)&&(dAngle2c<0)){pts[1].x=ptCenter.x+Math.cos(dAngle12c)*dRadius;pts[1].y=ptCenter.y+Math.sin(dAngle12c)*dRadius;}else{pts[1].x=ptCenter.x-Math.cos(dAngle12c)*dRadius;pts[1].y=ptCenter.y-Math.sin(dAngle12c)*dRadius;}
- pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);pLinePoints[counter].style=0;counter++;pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);pLinePoints[counter].style=5;counter++;dAngle0=Math.atan2(pts[1].y-savepoints[0].y,pts[1].x-savepoints[0].x);iArrowLength=((Math.sqrt((savepoints[1].x-savepoints[2].x)*(savepoints[1].x-savepoints[2].x)+(savepoints[1].y-savepoints[2].y)*(savepoints[1].y-savepoints[2].y))+Math.sqrt((savepoints[0].x-ptMid.x)*(savepoints[0].x-ptMid.x)+(savepoints[0].y-ptMid.y)*(savepoints[0].y-ptMid.y)))/20);if(iArrowLength>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength)
- iArrowLength=Math.floor(armyc2.c2sd.JavaLineArray.DISMSupport.maxLength);if(iArrowLength<armyc2.c2sd.JavaLineArray.DISMSupport.minLength)
- iArrowLength=Math.floor(armyc2.c2sd.JavaLineArray.DISMSupport.minLength);pts[0].x=savepoints[0].x+Math.cos(dAngle0+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iArrowLength;pts[0].y=savepoints[0].y+Math.sin(dAngle0+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iArrowLength;pts[1]=savepoints[0];pts[2].x=savepoints[0].x+Math.cos(dAngle0-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iArrowLength;pts[2].y=savepoints[0].y+Math.sin(dAngle0-armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/6)*iArrowLength;for(j=0;j<3;j++){pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);pLinePoints[counter].style=0;counter++;}
- pLinePoints[counter-1].style=5;d=dRadius/3;if(d>armyc2.c2sd.JavaLineArray.DISMSupport.maxLength)
- d=armyc2.c2sd.JavaLineArray.DISMSupport.maxLength;if(d<armyc2.c2sd.JavaLineArray.DISMSupport.minLength)
- d=armyc2.c2sd.JavaLineArray.DISMSupport.minLength;dAngleTic=armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/18;dDeltaX2=Math.cos(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*d;dDeltaY2=Math.sin(dAngle1+armyc2.c2sd.JavaLineArray.DISMSupport.CONST_PI/2)*d;for(i=0;i<8;i++){dAngle1c+=dAngleTic;dDeltaX1=Math.cos(dAngle1c)*dRadius;dDeltaY1=Math.sin(dAngle1c)*dRadius;pts[0].x=ptCenter.x-dDeltaX1;pts[0].y=ptCenter.y-dDeltaY1;pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[0]);pLinePoints[counter].style=0;counter++;pts[1].x=pts[0].x-dDeltaX2;pts[1].y=pts[0].y-dDeltaY2;pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[1]);pLinePoints[counter].style=5;counter++;}
- pts=null;savepoints=null;arcpoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.DISMSupport._className,"AmbushPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AmbushPointsDouble",exc));}else{throw exc;}}
- return counter;},LEFT_SIDE:0,RIGHT_SIDE:1,COLINEAR:2,CONST_PI:3.141592653589793,maxLength:100,minLength:5,_className:"DISMSupport"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.POINT2=function()
- {this.x=0;this.y=0;this.segment=0;this.style=0;if(arguments.length===1)
- {this.x=arguments[0].x;this.y=arguments[0].y;this.segment=arguments[0].segment;this.style=arguments[0].style;}
- else if(arguments.length===2)
- {this.x=arguments[0];this.y=arguments[1];}
- else if(arguments.length===3)
- {this.x=arguments[0];this.y=arguments[1];this.style=arguments[2];}
- else if(arguments.length===4)
- {this.x=arguments[0];this.y=arguments[1];this.segment=arguments[2];this.style=arguments[3];}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.Shape2=function()
- {this.affineTransform=null;this._Shape=null;this.stroke=null;this.gp=null;this.texturePaint=null;this.shapeType=-1;this.lineColor=null;this.fillColor=null;this.lineWidth=2;this._TextLayout=null;this._Position=null;this._ModifierString=null;this._ModifierStringPosition=null;this._ModifierStringAngle=0;this._Polylines=null;this.style=0;this.fillStyle=0;if(arguments.length===1)
- {this.shapeType=arguments[0];this._Shape=new armyc2.c2sd.graphics2d.GeneralPath();this.affineTransform=new armyc2.c2sd.graphics2d.AffineTransform();this.affineTransform.setToIdentity();var stroke1=new armyc2.c2sd.graphics2d.BasicStroke();this.stroke=stroke1;}};armyc2.c2sd.JavaLineArray.Shape2.prototype.set_Style=function(value){this.style=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.set_Fillstyle=function(value){this.fillStyle=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.get_FillStyle=function(){return this.fillStyle;};armyc2.c2sd.JavaLineArray.Shape2.prototype.get_Style=function(){return this.style;};armyc2.c2sd.JavaLineArray.Shape2.prototype.lineTo=function(pt){this._Shape.lineTo(Math.floor(pt.x),Math.floor(pt.y));};armyc2.c2sd.JavaLineArray.Shape2.prototype.moveTo=function(pt){this._Shape.moveTo(Math.floor(pt.x),Math.floor(pt.y));};armyc2.c2sd.JavaLineArray.Shape2.prototype.getBounds=function(){var rectf=new android.graphics.RectF();if(this._Shape instanceof armyc2.c2sd.graphics2d.GeneralPath){var path=this._Shape.getPath();path.computeBounds(rectf,true);var width=Math.floor(rectf.right)-Math.floor(rectf.left);var height=Math.floor(rectf.bottom)-Math.floor(rectf.top);var rect=new armyc2.c2sd.graphics2d.Rectangle(Math.floor(rectf.left),Math.floor(rectf.top),width,height);return rect;}else
- return null;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getShape=function(){return this._Shape;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setShape=function(value){this._Shape=value;this._TextLayout=null;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getTextLayout=function(){return this._TextLayout;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setTextLayout=function(value){this._TextLayout=value;this._Shape=null;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setModifierString=function(value){this._ModifierString=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getModifierString=function(){return this._ModifierString;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setModifierStringPosition=function(value){this._ModifierStringPosition=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getModifierStringPosition=function(){return this._ModifierStringPosition;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setModifierStringAngle=function(value){this._ModifierStringAngle=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getModifierStringAngle=function(){return this._ModifierStringAngle;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setLineColor=function(value){this.lineColor=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getLineColor=function(){return this.lineColor;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setFillColor=function(value){this.fillColor=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getFillColor=function(){return this.fillColor;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setGlyphPosition=function(position){this._Position=new armyc2.c2sd.graphics2d.Point2D(position.x,position.y);this._ModifierStringPosition=new armyc2.c2sd.graphics2d.Point2D(position.x,position.y);};armyc2.c2sd.JavaLineArray.Shape2.prototype.setGlyphPosition=function(position){this._Position=position;this._ModifierStringPosition=new armyc2.c2sd.graphics2d.Point2D(position.getX(),position.getY());};armyc2.c2sd.JavaLineArray.Shape2.prototype.getGlyphPosition=function(){return this._Position;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setAffineTransform=function(value){this.affineTransform=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getAffineTransform=function(){return this.affineTransform;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getStroke=function(){return this.stroke;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getTexturePaint=function(){return this.texturePaint;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setTexturePaint=function(value){this.texturePaint=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setStroke=function(s){this.stroke=s;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setShapeType=function(value){this.shapeType=value;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getShapeType=function(){return this.shapeType;};armyc2.c2sd.JavaLineArray.Shape2.prototype.getPolylines=function(){return this._Polylines;};armyc2.c2sd.JavaLineArray.Shape2.prototype.setPolylines=function(value){this._Polylines=value;};armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE=0;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL=1;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER=2;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER_FILL=3;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_FRAME=4;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_FILL=5;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_SYMBOL1=6;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_SYMBOL2=7;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_DISPLAY_MODIFIER=8;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_ECHELON=9;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_AFFILIATION_MODIFIER=10;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_HQ_STAFF=11;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_TG_SP_FILL=12;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_TG_SP_FRAME=13;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_TG_Q_MODIFIER=14;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_TG_SP_OUTLINE=15;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_SINGLE_POINT_OUTLINE=16;armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_UNIT_OUTLINE=17;var army=army||{};army.c2sd=army.c2sd||{};army.c2sd=army.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.TacticalLines=function()
- {this.BS_LINE=10000000;this.BS_AREA=11000000;this.BS_CROSS=12000000;this.BS_ELLIPSE=13000000;this.BS_RECTANGLE=14000000;this.BBS_LINE=15000000;this.BBS_AREA=15000001;this.BBS_POINT=15000002;this.BBS_RECTANGLE=15000003;this.BS_BBOX=15000004;this.PZ=22138000;this.LZ=22137000;this.DZ=22135000;this.FAADZ=22232000;this.MEZ=22234000;this.LOMEZ=22234100;this.HIMEZ=22234200;this.ROZ=22231000;this.WFZ=22235000;this.EZ=22136000;this.AIRFIELD=221311000;this.HIDACZ=22233000;this.FPF=24260000;this.DMA=22340000;this.DMAF=22350000;this.ENCIRCLE=22624000;this.LAA=221310000;this.DRCL=23490000;this.BYPASS=21300000;this.BYDIF=23212000;this.BYIMP=23213000;this.LINTGT=24250000;this.BLOCK=21100000;this.LINTGTS=24211000;this.BREACH=21200000;this.CANALIZE=21400000;this.MNFLDDIS=23174000;this.DISRUPT=211000000;this.EASY=23211000;this.CONTAIN=21600000;this.CLEAR=21500000;this.ISOLATE=211400000;this.OCCUPY=211600000;this.PENETRATE=211700000;this.RETAIN=211900000;this.SECURE=212100000;this.SEIZE=212300000;this.SEIZE_REVC=212300001;this.ASLTXING=23221000;this.BRIDGE=23222000;this.GAP=23163000;this.COVER=212230000;this.COVER_REVC=212230001;this.SCREEN=212210000;this.CREEN_REVC=212210001;this.GUARD=212220000;this.GUARD_REVC=212220001;this.SARA=22139000;this.DECEIVE=22310000;this.FIX=211100000;this.PDF=22422000;this.ATKBYFIRE=22533000;this.SPTBYFIRE=22534000;this.CLUSTER=23157000;this.TURN=23173000;this.PLANNED=23191000;this.ESR1=23192000;this.ESR2=23193000;this.ROADBLK=23194000;this.FOXHOLE=23340000;this.PAA=243100000;this.CONVOY=25211000;this.HCONVOY=25212000;this.FORDIF=23225000;this.MSDZ=23410000;this.RETIRE=212000000;this.RIP=211800000;this.TRIP=231100000;this.NAVIGATION=26220000;this.NEUTRALIZE=211500000;this.DESTROY=21900000;this.INTERDICT=211300000;this.TRP=22411000;this.FORTP=23320000;this.MSR=25221000;this.ASR=25222000;this.LL=22125000;this.FERRY=23223000;this.FORDSITE=23224000;this.MFLANE=23226000;this.RAFT=23227000;this.FOLSP=211210000;this.ATDITCH=23131100;this.ATDITCHC=23131200;this.ATWALL=23134000;this.ATDITCHM=23132000;this.DELAY=21800000;this.DIRATKAIR=22522100;this.DIRATKFNT=22330000;this.DIRATKGND=22522210;this.DIRATKSPT=22522220;this.WITHDRAW=212400000;this.CORDONSEARCH=212500000;this.CORDONKNOCK=212600000;this.WDRAWUP=212410000;this.TEST=0;this.MIN_POINTS=-1;this.CFL=24220000;this.LOD=22526000;this.PL=22124000;this.FSCL=24210000;this.RFL=24240000;this.FCL=22523000;this.LOA=22525000;this.BRDGHD=22623000;this.BRDGHD_GE=22623001;this.PLD=22528000;this.FLOT=22122000;this.FLOT2=22122001;this.FEBA=22421000;this.AMBUSH=22611000;this.LLTR=22225000;this.SAAFR=22223000;this.AC=22221000;this.AC_WIDTH=22221001;this.MRR=22222000;this.UAV=22224000;this.MRR_USAS=22222001;this.UAV_USAS=22224001;this.MNFLDFIX=23172000;this.MNFLDBLK=23171000;this.ONEWAY=25223000;this.ALT=25224000;this.TWOWAY=25225000;this.BEARING=26400000;this.ELECTRO=26410000;this.ACOUSTIC=26420000;this.TORPEDO=26430000;this.OPTICAL=26440000;this.BOUNDARY=22121000;this.HOLD=22612000;this.HOLD_GE=22612001;this.RELEASE=22613000;this.ABATIS=23120000;this.LINE=23112000;this.FOLLA=211200000;this.AXAD=22521100;this.AIRAOA=22521200;this.AAAAA=22521300;this.MAIN=22521410;this.MAIN_STRAIGHT=22521411;this.AAFNT=22320000;this.AAFNT_STRAIGHT=22320001;this.LC=22123000;this.LC2=22123001;this.IL=22524000;this.LDLC=22527000;this.SPT=22521420;this.SPT_STRAIGHT=22521421;this.CATK=21700000;this.BELT=23111000;this.BELT1=23111001;this.CATKBYFIRE=21710000;this.TRIPLE=231117300;this.TRIPLE2=231117301;this.DOUBLEC=231117200;this.DOUBLEC2=231117201;this.SINGLEC=231117100;this.SINGLEC2=231117101;this.HWFENCE=231116000;this.LWFENCE=231115000;this.UNSP=231111000;this.DOUBLEA=231114000;this.SFENCE=231112000;this.DFENCE=231113000;this.CHANNEL=231113001;this.CHANNEL_FLARED=231113002;this.CHANNEL_DASHED=231113003;this.OVERHEAD_WIRE=23200000;this.OVERHEAD_WIRE_LS=23200001;this.PAA_RECTANGULAR=24326100;this.PAA_RECTANGULAR_REVC=24326101;this.BATTLE=22431000;this.STRONG=23350000;this.ASSY=22132000;this.FFA=24323100;this.FFA_RECTANGULAR=24323200;this.FFA_CIRCULAR=24323300;this.FSA=24321100;this.FSA_RECTANGULAR=24321200;this.FSA_CIRCULAR=24321300;this.RFA=24325100;this.RFA_RECTANGULAR=24325200;this.RFA_CIRCULAR=24325300;this.PAA_CIRCULAR=24326200;this.ATI=24331100;this.ATI_RECTANGULAR=24331200;this.ATI_CIRCULAR=24331300;this.CFFZ=24332100;this.CFFZ_RECTANGULAR=24332200;this.CFFZ_CIRCULAR=24332300;this.SENSOR=24333100;this.SENSOR_RECTANGULAR=24333200;this.SENSOR_CIRCULAR=24333300;this.CENSOR=24334100;this.CENSOR_RECTANGULAR=24334200;this.CENSOR_CIRCULAR=24334300;this.DA=24335100;this.DA_RECTANGULAR=24335200;this.DA_CIRCULAR=24335300;this.CFZ=24336100;this.CFZ_RECTANGULAR=24336200;this.CFZ_CIRCULAR=24336300;this.ZOR=24337100;this.ZOR_RECTANGULAR=24337200;this.ZOR_CIRCULAR=24337300;this.TBA=24338100;this.TBA_RECTANGULAR=24338200;this.TBA_CIRCULAR=24338300;this.TVAR=24339100;this.TVAR_RECTANGULAR=24339200;this.TVAR_CIRCULAR=24339300;this.TAI=22626000;this.OBJ=22535000;this.BSA=25351000;this.DSA=25352000;this.EA=22133000;this.EA1=22432000;this.NAI=22625000;this.FARP=25330000;this.FORT=22134000;this.ACA=24322100;this.ACA_RECTANGULAR=24322200;this.ACA_CIRCULAR=24322300;this.AT=24330000;this.SMOKE=24314000;this.SERIES=24313000;this.BOMB=24315000;this.DHA=25310000;this.EPW=25320000;this.RHA=25340000;this.RSA=25353000;this.GENERAL=22131000;this.GENERIC=22131001;this.DUMMY_STATIC=22360000;this.DUMMY=2237000;this.PNO=22431100;this.ASSAULT=22531000;this.ATKPOS=22532000;this.AO=22621000;this.AIRHEAD=22622000;this.PEN=22536000;this.DEPICT=23162000;this.MINED=23164000;this.UXO=23180000;this.FORTL=23330000;this.OBSAREA=23115000;this.ZONE=23113000;this.OBSFAREA=23114000;this.NFA=24324100;this.NFA_RECTANGULAR=24324200;this.NFA_CIRCULAR=24324300;this.CHEM=23460000;this.BIO=23450000;this.RAD=23440000;this.NFL=24230000;this.MFP=24225000;this.TGMF=24226000;this.RECTANGULAR=24311000;this.CIRCULAR=24312000;this.KILLBOXBLUE=24351000;this.KILLBOXBLUE_RECTANGULAR=24352000;this.KILLBOXBLUE_CIRCULAR=24353000;this.KILLBOXPURPLE=24361000;this.KILLBOXPURPLE_RECTANGULAR=24362000;this.KILLBOXPURPLE_CIRCULAR=24363000;this.RANGE_FAN=243111000;this.RANGE_FAN_FILL=243111001;this.RANGE_FAN_SECTOR=243112000;this.CF=31131000;this.UCF=31131100;this.CFG=31131200;this.CFY=31131300;this.WF=31132000;this.WFG=31132200;this.WFY=31132300;this.UWF=31132100;this.OCCLUDED=31133000;this.UOF=31133100;this.OFY=31133200;this.SF=31134000;this.USF=31134100;this.SFG=31134200;this.SFY=31134300;this.TROUGH=31141000;this.INSTABILITY=31144000;this.SHEAR=31145000;this.ITC=31146000;this.CONVERGANCE=31147000;this.ITD=31148000;this.RIDGE=31142000;this.SQUALL=31143000;this.JET=31430000;this.JET_GE=31430001;this.STREAM=31440000;this.STREAM_GE=31440001;this.IFR=31710000;this.MVFR=31720000;this.TURBULENCE=31730000;this.ICING=31740000;this.NON_CONVECTIVE=31750000;this.CONVECTIVE=31751000;this.FROZEN=31760000;this.THUNDERSTORMS=31770000;this.FOG=31780000;this.SAND=31790000;this.FREEFORM=317100000;this.ISOBAR=31810000;this.ISOBAR_GE=31810001;this.UPPER_AIR=31820000;this.UPPER_AIR_GE=31820001;this.ISOTHERM=31830000;this.ISOTHERM_GE=31830001;this.ISOTACH=31840000;this.ISOTACH_GE=31840001;this.ISODROSOTHERM=31850000;this.ISODROSOTHERM_GE=31850001;this.ISOPLETHS=31860000;this.ISOPLETHS_GE=31860001;this.OPERATOR_FREEFORM=31870000;this.ICE_DRIFT=32134000;this.LVO=32151000;this.UNDERCAST=32152000;this.LRO=32153000;this.ICE_EDGE=32154000;this.ICE_EDGE_GE=32154001;this.ESTIMATED_ICE_EDGE=32155000;this.ESTIMATED_ICE_EDGE_GE=32155001;this.ICE_EDGE_RADAR=32156000;this.ICE_EDGE_RADAR_GE=32156001;this.CRACKS=32161000;this.CRACKS_GE=32161001;this.CRACKS_SPECIFIC_LOCATION=32162000;this.CRACKS_SPECIFIC_LOCATION_GE=32162001;this.ICE_OPENINGS_LEAD=32163000;this.ICE_OPENINGS_LEAD_GE=32163001;this.ICE_OPENINGS_FROZEN=32164000;this.ICE_OPENINGS_FROZEN_GE=32164001;this.DEPTH_CURVE=32212000;this.DEPTH_CURVE_GE=32212001;this.DEPTH_CONTOUR=32213000;this.DEPTH_CONTOUR_GE=32213001;this.DEPTH_AREA=32214000;this.COASTLINE=32221000;this.COASTLINE_GE=32221001;this.ISLAND=32222000;this.BEACH=32223000;this.WATER=32224000;this.FORESHORE_LINE=32225100;this.FORESHORE_AREA=32225200;this.ANCHORAGE_LINE=32231400;this.ANCHORAGE_AREA=32231500;this.PIER=32231700;this.PIER_GE=32231701;this.WEIRS=32232400;this.DRYDOCK=32233100;this.LOADING_FACILITY_LINE=32233400;this.LOADING_FACILITY_AREA=32233500;this.RAMP_ABOVE_WATER=32233600;this.RAMP_ABOVE_WATER_GE=32233601;this.RAMP_BELOW_WATER=32233700;this.RAMP_BELOW_WATER_GE=32233701;this.JETTY_ABOVE_WATER=32234100;this.JETTY_ABOVE_WATER_GE=32234101;this.JETTY_BELOW_WATER=32234200;this.JETTY_BELOW_WATER_GE=32234201;this.SEAWALL=32234300;this.SEAWALL_GE=32234301;this.PERCHES=32244200;this.LEADING_LINE=32246000;this.UNDERWATER_HAZARD=32253000;this.FOUL_GROUND=32254200;this.KELP=32255200;this.BREAKERS=32259000;this.REEF=322510000;this.DISCOLORED_WATER=322512000;this.EBB_TIDE=32272000;this.EBB_TIDE_GE=32272001;this.FLOOD_TIDE=32273000;this.FLOOD_TIDE_GE=32273001;this.RESTRICTED_AREA=32530000;this.PIPE=32680000;this.TRAINING_AREA=32550000;this.VDR_LEVEL_12=32311000;this.VDR_LEVEL_23=32312000;this.VDR_LEVEL_34=32313000;this.VDR_LEVEL_45=32314000;this.VDR_LEVEL_56=32315000;this.VDR_LEVEL_67=32316000;this.VDR_LEVEL_78=32317000;this.VDR_LEVEL_89=32318000;this.VDR_LEVEL_910=32319000;this.BEACH_SLOPE_FLAT=32321000;this.BEACH_SLOPE_GENTLE=32322000;this.BEACH_SLOPE_MODERATE=32323000;this.BEACH_SLOPE_STEEP=32324000;this.SOLID_ROCK=32411100;this.CLAY=32411200;this.VERY_COARSE_SAND=32411300;this.COARSE_SAND=32411400;this.MEDIUM_SAND=32411500;this.FINE_SAND=32411600;this.VERY_FINE_SAND=32411700;this.VERY_FINE_SILT=32411800;this.FINE_SILT=32411900;this.MEDIUM_SILT=324111000;this.COARSE_SILT=324111100;this.BOULDERS=324111200;this.OYSTER_SHELLS=324111300;this.PEBBLES=324111400;this.SAND_AND_SHELLS=324111500;this.BOTTOM_SEDIMENTS_LAND=324111600;this.BOTTOM_SEDIMENTS_NO_DATA=324111700;this.BOTTOM_ROUGHNESS_SMOOTH=32412100;this.BOTTOM_ROUGHNESS_MODERATE=32412200;this.BOTTOM_ROUGHNESS_ROUGH=32412300;this.CLUTTER_LOW=32413100;this.CLUTTER_MEDIUM=32413200;this.CLUTTER_HIGH=32413300;this.IMPACT_BURIAL_0=32414100;this.IMPACT_BURIAL_10=32414200;this.IMPACT_BURIAL_20=32414300;this.IMPACT_BURIAL_75=32414400;this.IMPACT_BURIAL_100=32414500;this.BOTTOM_CATEGORY_A=32415100;this.BOTTOM_CATEGORY_B=32415200;this.BOTTOM_CATEGORY_C=32415300;this.BOTTOM_TYPE_A1=32416100;this.BOTTOM_TYPE_A2=32416200;this.BOTTOM_TYPE_A3=32416300;this.BOTTOM_TYPE_B1=32416400;this.BOTTOM_TYPE_B2=32416500;this.BOTTOM_TYPE_B3=32416600;this.BOTTOM_TYPE_C1=32416700;this.BOTTOM_TYPE_C2=32416800;this.BOTTOM_TYPE_C3=32416900;this.SWEPT_AREA=32540000;this.OIL_RIG_FIELD=32670000;this.SUBMERGED_CRIB=32620000;this.CABLE=32610000;this.CABLE_GE=32610001;this.MARITIME_LIMIT=32510000;this.MARITIME_AREA=32520000;this.CANAL=32630000;this.OPERATOR_DEFINED=32560000;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.arraysupport={setMinLength:function(value)
- {minLength=value;},FillPoints:function(pLinePoints,counter,points)
- {points.clear();for(var j=0;j<counter;j++)
- {points.add(pLinePoints[j]);}},GetLineArray2:function(lineType,pts,shapes,clipBounds,rev){var points=null;try{var pt=null;var pLinePoints2=null;var pLinePoints=null;var vblSaveCounter=pts.size();var j=0;if(pLinePoints2===null||pLinePoints2.length===0){pLinePoints=new Array(vblSaveCounter);for(j=0;j<vblSaveCounter;j++){pt=pts.get(j);pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt.x,pt.y,pt.style);}}
- var vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetCountersDouble(lineType,vblSaveCounter,pLinePoints,clipBounds,rev);if(vblCounter>0)
- pLinePoints=new Array(vblCounter);else{shapes=null;return null;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pLinePoints);if(vblSaveCounter>pts.size())
- vblSaveCounter=pts.size();if(vblSaveCounter>pLinePoints.length)
- vblSaveCounter=pLinePoints.length;for(j=0;j<vblSaveCounter;j++){pt=pts.get(j);pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt.x,pt.y,pt.style);}
- points=armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2Double(lineType,pLinePoints,vblCounter,vblSaveCounter,shapes,clipBounds,rev);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetLineArray2",new armyc2.c2sd.renderer.utilities.RendererException("GetLineArray2 "+Integer.toString(lineType),exc));}else{throw exc;}}
- return points;},GetFORTLPointsDouble:function(pLinePoints,lineType,vblSaveCounter){var nCounter=0;try{var j=0;var k=0;var bolVertical=0;var lCount=0;var dLengthSegment=0;var dIncrement=20;var m=new armyc2.c2sd.JavaLineArray.ref();var pSpikePoints=null;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();lCount=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,lineType,vblSaveCounter);pSpikePoints=new Array(lCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikePoints);switch(lineType){default:dIncrement=20;break;}
- for(j=0;j<vblSaveCounter-1;j++){bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);dLengthSegment=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);if(dLengthSegment/20<1){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;continue;}
- for(k=0;k<dLengthSegment/20-1;k++){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement,0);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-10,0);nCounter++;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nCounter-1]);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pSpikePoints[nCounter-1],10);if(pLinePoints[j].x>pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,3,10);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt1,3,10);nCounter++;}
- if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,2,10);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt1,2,10);nCounter++;}
- if(pLinePoints[j].x===pLinePoints[j+1].x){if(pLinePoints[j].y<pLinePoints[j+1].y){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,1,10);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt1,1,10);nCounter++;}
- if(pLinePoints[j].y>pLinePoints[j+1].y){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,0,10);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt1,0,10);nCounter++;}}
- pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-3],10,0);nCounter++;}
- pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;}
- for(j=0;j<nCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);}
- pSpikePoints=null;return nCounter;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetFORTLPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetFORTLPointsDouble "+Integer.toString(lineType),exc));}else{throw exc;}}
- return nCounter;},CoordFEBADouble:function(pLinePoints,vblCounter){try{var j=0;var pXLinePoints=new Array(Math.floor(4*vblCounter/32));var pNewLinePoints=new Array(Math.floor(vblCounter/32));var pShortLinePoints=new Array(Math.floor(2*vblCounter/32));var pArcLinePoints=new Array(Math.floor(26*vblCounter/32));var dPrinter=1.0;for(j=Math.floor(vblCounter/32);j<vblCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[j].style=0;}
- for(j=0;j<Math.floor(4*vblCounter/32);j++){pXLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pXLinePoints[j].style=0;}
- for(j=0;j<Math.floor(vblCounter/32);j++){pNewLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pNewLinePoints[j].style=0;}
- for(j=0;j<Math.floor(2*vblCounter/32);j++){pShortLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pShortLinePoints[j].style=0;}
- for(j=0;j<Math.floor(26*vblCounter/32);j++){pArcLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pArcLinePoints[j].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.GetXFEBADouble(pNewLinePoints,10*dPrinter,Math.floor(vblCounter/32),pXLinePoints);for(j=0;j<Math.floor(4*vblCounter/32);j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pXLinePoints[j]);}
- pLinePoints[Math.floor(4*vblCounter/32)-1].style=5;for(j=Math.floor(4*vblCounter/32);j<Math.floor(6*vblCounter/32);j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pShortLinePoints[j-Math.floor(4*vblCounter/32)]);pLinePoints[j].style=5;}
- pLinePoints[Math.floor(6*vblCounter/32)-1].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArcFEBADouble(14.0*dPrinter,pNewLinePoints,Math.floor(vblCounter/32),pArcLinePoints);for(j=Math.floor(6*vblCounter/32);j<vblCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArcLinePoints[j-Math.floor(6*vblCounter/32)]);}
- pXLinePoints=null;pNewLinePoints=null;pShortLinePoints=null;pArcLinePoints=null;return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"CoordFEBADouble",new armyc2.c2sd.renderer.utilities.RendererException("CoordFEBADouble",exc));}else{throw exc;}}},GetATWallPointsDouble2:function(pLinePoints,lineType,vblSaveCounter){var nCounter=0;try{var j=0;var k=0;var lCount=0;var dLengthSegment=0;var dIncrement=0;var pSpikePoints=null;var pt0;var dSpikeSize=0;var limit=0;lCount=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,lineType,vblSaveCounter);pSpikePoints=new Array(lCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikePoints);pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);for(j=0;j<vblSaveCounter-1;j++){dLengthSegment=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);dIncrement=20;dSpikeSize=10;limit=Math.floor((dLengthSegment/dIncrement))-1;if(limit<1){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;continue;}
- for(k=-1;k<limit;k++){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-30,0);nCounter++;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pSpikePoints[nCounter-1],dSpikeSize/2);if(pLinePoints[j].x>pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pSpikePoints[nCounter-1],pt0,2,dSpikeSize);}
- if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pSpikePoints[nCounter-1],pt0,3,dSpikeSize);}
- if(pLinePoints[j].x===pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);if(pLinePoints[j].y<pLinePoints[j+1].y){pSpikePoints[nCounter].x=pt0.x-dSpikeSize;}else{pSpikePoints[nCounter].x=pt0.x+dSpikeSize;}}
- nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-2],dSpikeSize,0);nCounter++;}
- pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nCounter].style=0;nCounter++;}
- for(j=0;j<nCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);}
- pSpikePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetATWallPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetATWallPointsDouble",exc));}else{throw exc;}}
- return nCounter;},GetInsideOutsideDouble2:function(pt0,pt1,pLinePoints,vblCounter,index,lineType){var nDirection=0;try{var m=new armyc2.c2sd.JavaLineArray.ref();var m0=new armyc2.c2sd.JavaLineArray.ref();var b0=0;var b2=0;var b=0;var X0=0;var Y0=0;var X=0;var Y=0;var nInOutCounter=0;var j=0;var bolVertical=0;var bolVertical2=0;var nOrientation=0;var extendLeft=0;var extendRight=1;var extendAbove=2;var extendBelow=3;var oppSegment=vblCounter-index-3;var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m0);if(m0.value===null)
- return 0;X0=(pt0.x+pt1.x)/2;Y0=(pt0.y+pt1.y)/2;if(lineType===23111001&&oppSegment>=0&&oppSegment<vblCounter-1){X0=(pLinePoints[oppSegment].x+pLinePoints[oppSegment+1].x)/2;Y0=(pLinePoints[oppSegment].y+pLinePoints[oppSegment+1].y)/2;b0=Y0+1/m0.value[0]*X0;b2=pt0.y-m0.value[0]*pt0.x;if(m0.value[0]!==0&&bolVertical!==0){pt2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m0.value[0],b0,m0.value[0],b2,1,1,0,0);X0=pt2.x;Y0=pt2.y;}
- if(m0.value[0]===0&&bolVertical!==0){X0=(pLinePoints[oppSegment].x+pLinePoints[oppSegment+1].x)/2;Y0=(pt0.y+pt1.y)/2;}
- if(bolVertical===0){Y0=(pLinePoints[oppSegment].y+pLinePoints[oppSegment+1].y)/2;X0=(pt0.x+pt1.x)/2;}}
- if(Math.abs(m0.value[0])>=1||bolVertical===0){nOrientation=0;for(j=0;j<vblCounter-1;j++){if(index!==j){if(lineType===23111001&&oppSegment!==j)
- continue;if((pLinePoints[j].y<=Y0&&pLinePoints[j+1].y>=Y0)||(pLinePoints[j].y>=Y0&&pLinePoints[j+1].y<=Y0)){bolVertical2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);if(bolVertical2===1&&m.value[0]===0){nInOutCounter++;nInOutCounter--;}
- if(bolVertical2===0){if(pLinePoints[j].x<X0){nInOutCounter++;}}
- if(m.value[0]!==0&&bolVertical2===1){b=pLinePoints[j].y-m.value[0]*pLinePoints[j].x;X=(Y0-b)/m.value[0];if(X<X0){nInOutCounter++;}}}}}}else{nOrientation=1;for(j=0;j<vblCounter-1;j++){if(index!==j){if(lineType===23111001&&oppSegment!==j)
- continue;if((pLinePoints[j].x<=X0&&pLinePoints[j+1].x>=X0)||(pLinePoints[j].x>=X0&&pLinePoints[j+1].x<=X0)){bolVertical2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);if(bolVertical2===0){nInOutCounter++;nInOutCounter--;}
- if(bolVertical2===1&&m.value[0]===0){if(pLinePoints[j].y<Y0){nInOutCounter++;}}
- if(m.value[0]!==0&&bolVertical2===1){b=pLinePoints[j].y-m.value[0]*pLinePoints[j].x;Y=m.value[0]*X0+b;if(Y<Y0){nInOutCounter++;}}}}}}
- switch(nInOutCounter%2){case 0:if(nOrientation===0){nDirection=extendLeft;}else{nDirection=extendAbove;}
- break;case 1:if(nOrientation===0){nDirection=extendRight;}else{nDirection=extendBelow;}
- break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetInsideOutsideDouble2",new armyc2.c2sd.renderer.utilities.RendererException("GetInsideOutsideDouble2",exc));}else{throw exc;}}
- return nDirection;},GetZONEPointsDouble2:function(pLinePoints,lineType,vblSaveCounter){var nCounter=0;try{var j=0;var k=0;var n=0;var lCount=0;var dLengthSegment=0;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt1=null;var pt2=null;var pt3=null;var pSpikePoints=null;var nDirection=0;lCount=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,lineType,vblSaveCounter);pSpikePoints=new Array(lCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikePoints);var remainder=0;for(j=0;j<vblSaveCounter-1;j++){pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nDirection=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pt1,pt2,pLinePoints,vblSaveCounter,j,lineType);dLengthSegment=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);if(!(lineType===23111000)&&!(lineType===23111001)){if(dLengthSegment<20){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;continue;}}
- switch(lineType){case 23115000:case 23114000:switch(nDirection){case 0:nDirection=1;break;case 1:nDirection=0;break;case 2:nDirection=3;break;case 3:nDirection=2;break;default:break;}
- break;default:break;}
- n=Math.floor((dLengthSegment/20));remainder=dLengthSegment-n*20;for(k=0;k<n;k++){if(k>0){pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*20-remainder/2,0);pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*20-10-remainder/2,0);}else{pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*20,0);pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*20-10,0);}
- switch(lineType){case 23115000:case 23114000:case 23113000:case 23111000:case 23111001:case 22624000:pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pSpikePoints[nCounter-1],5);break;case 23350000:case 22134000:pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nCounter-1]);break;default:break;}
- pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt0,nDirection,10);switch(lineType){case 23115000:case 23114000:case 23113000:case 23111000:case 23111001:case 22624000:pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-2],10,0);break;case 23350000:pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nCounter-2]);break;case 22134000:pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-2],10,0);pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt3,nDirection,10);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);break;default:break;}
- nCounter++;if(lineType===22624000)
- pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nCounter-4]);}
- pSpikePoints[nCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);}
- for(j=0;j<nCounter;j++){if(lineType===23115000){pSpikePoints[j].style=11;}}
- if(lineType===23115000){pSpikePoints[nCounter-1].style=12;}else{if(nCounter>0)
- pSpikePoints[nCounter-1].style=5;}
- for(j=0;j<nCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);if(j===nCounter-1){if(lineType!==23115000){pLinePoints[j].style=5;}}}
- pSpikePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetZONEPointsDouble2",new armyc2.c2sd.renderer.utilities.RendererException("GetZONEPointsDouble2",exc));}else{throw exc;}}
- return nCounter;},IsTurnArcReversed:function(pPoints){try{if(pPoints.length<3){return false;}
- var ptsSeize=new Array(2);ptsSeize[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[0]);ptsSeize[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[1]);armyc2.c2sd.JavaLineArray.lineutility.CalcClockwiseCenterDouble(ptsSeize);var d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptsSeize[0],pPoints[2]);ptsSeize[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[1]);ptsSeize[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[0]);armyc2.c2sd.JavaLineArray.lineutility.CalcClockwiseCenterDouble(ptsSeize);var dArcReversed=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptsSeize[0],pPoints[2]);ptsSeize=null;if(dArcReversed>d){return true;}else{return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"IsTurnArcReversed",new armyc2.c2sd.renderer.utilities.RendererException("IsTurnArcReversed",exc));}else{throw exc;}}
- return false;},GetIsolatePointsDouble:function(pLinePoints,lineType){try{var reverseTurn=false;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);if(pt0.x===pt1.x&&pt0.y===pt1.y)
- pt1.x+=1;var C=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var E=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var midPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;var k=0;var l=0;var ptsArc=new Array(26);var midPts=new Array(7);var trianglePts=new Array(21);var pArrowPoints=new Array(3);var reversepArrowPoints=new Array(3);var dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);var dLength=Math.abs(dRadius-20);if(dRadius<40){dLength=dRadius/1.5;}
- var d=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(pLinePoints,2);var ptsSeize=new Array(2);var savepoints=new Array(3);for(j=0;j<2;j++){savepoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- if(pLinePoints.length>=3){savepoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[2]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsArc);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(midPts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(trianglePts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pArrowPoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(reversepArrowPoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsSeize);if(d/7>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){d=7*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(d/7<armyc2.c2sd.JavaLineArray.arraysupport.minLength){d=7*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(d>140)
- d=140;var ptsArc2=new Array(26);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(ptsArc2);E.x=2*pt1.x-pt0.x;E.y=2*pt1.y-pt0.y;ptsArc[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);ptsArc[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(E);armyc2.c2sd.JavaLineArray.lineutility.ArcArrayDouble(ptsArc,0,dRadius,lineType);for(j=0;j<26;j++){ptsArc[j].style=0;pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArc[j]);pLinePoints[j].style=0;}
- if(lineType!==211600000)
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(ptsArc[24],ptsArc[25],Math.floor(Math.floor(d)/7),Math.floor(Math.floor(d)/7),pArrowPoints,0);else
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(ptsArc[24],ptsArc[25],Math.floor(Math.floor(d)/7),Math.floor(Math.floor(1.75*d)/7),pArrowPoints,0);pLinePoints[25].style=5;switch(lineType){case 212600000:case 212500000:case 211400000:for(j=1;j<=23;j++){if(j%3===0){midPts[k].x=pt0.x-Math.floor(((dLength/dRadius)*(pt0.x-ptsArc[j].x)));midPts[k].y=pt0.y-Math.floor(((dLength/dRadius)*(pt0.y-ptsArc[j].y)));midPts[k].style=0;trianglePts[l]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArc[j-1]);l++;trianglePts[l]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midPts[k]);l++;trianglePts[l]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArc[j+1]);trianglePts[l].style=5;l++;k++;}}
- for(j=26;j<47;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(trianglePts[j-26]);}
- pLinePoints[46].style=5;for(j=47;j<50;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j-47]);pLinePoints[j].style=0;}
- break;case 211600000:midPt.x=(pt1.x+ptsArc[25].x)/2;midPt.y=(pt1.y+ptsArc[25].y)/2;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(midPt,ptsArc[25],Math.floor(Math.floor(d)/7),Math.floor(Math.floor(1.75*d)/7),reversepArrowPoints,0);for(j=26;j<29;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j-26]);}
- for(j=29;j<32;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(reversepArrowPoints[j-29]);pLinePoints[j].style=0;}
- break;case 212100000:for(j=26;j<29;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j-26]);pLinePoints[j].style=0;}
- pLinePoints[28].style=5;break;case 23173000:var changeArc=armyc2.c2sd.JavaLineArray.arraysupport.IsTurnArcReversed(savepoints);if(reverseTurn===true||changeArc===true){pt0.x=pt1.x;pt0.y=pt1.y;pt1.x=pt2.x;pt1.y=pt2.y;}
- ptsSeize[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);ptsSeize[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcClockwiseCenterDouble(ptsSeize);C=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsSeize[0]);E=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsSeize[1]);ptsArc[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);ptsArc[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(E);armyc2.c2sd.JavaLineArray.lineutility.ArcArrayDouble(ptsArc,0,dRadius,lineType);for(j=0;j<26;j++){ptsArc[j].style=0;pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArc[j]);pLinePoints[j].style=0;}
- if(changeArc===true){armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(ptsArc[1],pt0,Math.floor(Math.floor(d)/7),Math.floor(Math.floor(d)/7),pArrowPoints,5);}else{armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(ptsArc[24],pt1,Math.floor(Math.floor(d)/7),Math.floor(Math.floor(d)/7),pArrowPoints,5);}
- pLinePoints[25].style=5;for(j=26;j<29;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j-26]);pLinePoints[j].style=9;}
- pLinePoints[28].style=10;break;case 211900000:for(j=26;j<29;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j-26]);pLinePoints[j].style=0;}
- pLinePoints[28].style=5;k=29;for(j=1;j<24;j++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsArc[j]);pLinePoints[k].style=0;k++;pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,ptsArc[j],Math.floor(Math.floor(d)/7));pLinePoints[k].style=5;k++;}
- break;default:break;}
- savepoints=null;ptsArc=null;midPts=null;trianglePts=null;pArrowPoints=null;reversepArrowPoints=null;ptsSeize=null;ptsArc2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetIsolatePointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetIsolatePointsDouble "+Integer.toString(lineType),exc));}else{throw exc;}}
- return;},AreaWithCenterFeatureDouble:function(pLinePoints,vblCounter,lineType){try{var k=0;var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var d=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(pLinePoints,vblCounter);if(d>350)
- d=350;for(k=0;k<vblCounter;k++){pLinePoints[k].style=0;}
- switch(lineType){case 2237000:var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();armyc2.c2sd.JavaLineArray.lineutility.CalcMBRPoints(pLinePoints,vblCounter-3,ul,lr);var ur=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lr);ur.y=ul.y;pLinePoints[vblCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(ur,ul,0);pLinePoints[vblCounter-3].x-=25;pLinePoints[vblCounter-3].y-=10;pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(ur,ul,0);pLinePoints[vblCounter-2].y-=35;pLinePoints[vblCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(ur,ul,0);pLinePoints[vblCounter-1].x+=25;pLinePoints[vblCounter-1].y-=10;pLinePoints[vblCounter-4].style=5;break;case 221311000:pLinePoints[vblCounter-5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[vblCounter-5].style=5;pLinePoints[vblCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble(pLinePoints,vblCounter-4);pLinePoints[vblCounter-4].x-=d/20;pLinePoints[vblCounter-4].style=0;pLinePoints[vblCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-4]);pLinePoints[vblCounter-3].x=pLinePoints[vblCounter-4].x+d/10;pLinePoints[vblCounter-3].style=5;pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-4]);pLinePoints[vblCounter-2].y+=d/40;pLinePoints[vblCounter-2].style=0;pLinePoints[vblCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-3]);pLinePoints[vblCounter-1].y-=d/40;pLinePoints[vblCounter-1].style=0;break;case 22340000:if(lineType===22340000){for(k=0;k<vblCounter-4;k++){pLinePoints[k].style=14;}}
- pLinePoints[vblCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[vblCounter-4].style=5;ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble(pLinePoints,vblCounter-3);pLinePoints[vblCounter-3].x=ptCenter.x-d/10;pLinePoints[vblCounter-3].y=ptCenter.y;pLinePoints[vblCounter-3].style=18;pLinePoints[vblCounter-2].x=ptCenter.x;pLinePoints[vblCounter-2].y=ptCenter.y-d/10;pLinePoints[vblCounter-2].style=18;pLinePoints[vblCounter-1].x=ptCenter.x+d/10;pLinePoints[vblCounter-1].y=ptCenter.y;break;case 22350000:pLinePoints[vblCounter-4].style=5;ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble(pLinePoints,vblCounter-3);pLinePoints[vblCounter-3].x=ptCenter.x-d/10;pLinePoints[vblCounter-3].y=ptCenter.y;pLinePoints[vblCounter-3].style=18;pLinePoints[vblCounter-2].x=ptCenter.x;pLinePoints[vblCounter-2].y=ptCenter.y-d/10;pLinePoints[vblCounter-2].style=18;pLinePoints[vblCounter-1].x=ptCenter.x+d/10;pLinePoints[vblCounter-1].y=ptCenter.y;pLinePoints[vblCounter-1].style=5;break;default:break;}
- return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"AreaWithCenterFeatureDouble",new armyc2.c2sd.renderer.utilities.RendererException("AreaWithCenterFeatureDouble "+Integer.toString(lineType),exc));}else{throw exc;}}},GetATWallPointsDouble:function(pLinePoints,lineType,vblSaveCounter){var nCounter=0;try{var j=0;var k=0;var lCount=0;var dLengthSegment=0;var dIncrement=0;var pSpikePoints=null;var pt0;var dRemainder=0;var dSpikeSize=0;var limit=0;var crossPt1;var crossPt2;lCount=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,lineType,vblSaveCounter);pSpikePoints=new Array(lCount);switch(lineType){case 31131200:case 31131300:pSpikePoints[nCounter]=pLinePoints[0];pSpikePoints[nCounter].style=0;nCounter++;break;default:break;}
- for(j=0;j<vblSaveCounter-1;j++){dLengthSegment=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);switch(lineType){case 31131100:case 31131000:case 31131200:case 31131300:dIncrement=60;dSpikeSize=20;dRemainder=dLengthSegment/dIncrement-(Math.floor((dLengthSegment/dIncrement)));if(dRemainder<0.75){limit=Math.floor((dLengthSegment/dIncrement));}else{limit=Math.floor((dLengthSegment/dIncrement))+1;}
- break;default:dIncrement=20;dSpikeSize=10;limit=Math.floor((dLengthSegment/dIncrement))-1;break;}
- if(limit<1){pSpikePoints[nCounter]=pLinePoints[j];nCounter++;pSpikePoints[nCounter]=pLinePoints[j+1];nCounter++;continue;}
- for(k=0;k<limit;k++){switch(lineType){case 31131200:if(k>0){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement+45,0);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement+4,5);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-1,20);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-7,0);}else{pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-45,0);}
- break;case 31131300:if(k>0){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement+45,0);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement+10,5);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikePoints[nCounter-1],pLinePoints[j+1],5,0);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikePoints[nCounter-1],pLinePoints[j+1],10,5);nCounter++;crossPt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nCounter-2],pSpikePoints[nCounter-1],pSpikePoints[nCounter-1],2,5,0);crossPt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nCounter-1],pSpikePoints[nCounter-2],pSpikePoints[nCounter-2],3,5,5);pSpikePoints[nCounter]=crossPt1;nCounter++;pSpikePoints[nCounter]=crossPt2;nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-13,0);}else{pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-45,0);}
- break;default:pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-30,0);break;}
- if(lineType===31131000){pSpikePoints[nCounter].style=0;}
- nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement-dSpikeSize,0);if(lineType===31131000||lineType===31131200||lineType===31131300){pSpikePoints[nCounter].style=9;}
- nCounter++;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pSpikePoints[nCounter-1],dSpikeSize/2);if(pLinePoints[j].x>pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pSpikePoints[nCounter-1],pt0,2,dSpikeSize);}
- if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pSpikePoints[nCounter-1],pt0,3,dSpikeSize);}
- if(pLinePoints[j].x===pLinePoints[j+1].x){pSpikePoints[nCounter]=pt0;if(pLinePoints[j].y<pLinePoints[j+1].y){pSpikePoints[nCounter].x=pt0.x-dSpikeSize;}else{pSpikePoints[nCounter].x=pt0.x+dSpikeSize;}}
- nCounter++;if(lineType===31131000||lineType===31131200||lineType===31131300){pSpikePoints[nCounter-1].style=9;}
- pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-2],dSpikeSize,0);switch(lineType){case 31131000:pSpikePoints[nCounter].style=10;break;case 31131200:case 31131300:pSpikePoints[nCounter].style=10;nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nCounter-3],dSpikeSize,0);break;default:break;}
- nCounter++;}
- pSpikePoints[nCounter]=pLinePoints[j+1];pSpikePoints[nCounter].style=0;nCounter++;}
- for(j=0;j<nCounter;j++){pLinePoints[j]=pSpikePoints[j];}
- pLinePoints[nCounter-1].style=5;pSpikePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetATWallPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetATWallPointsDouble "+Integer.toString(lineType),exc));}else{throw exc;}}
- return nCounter;},GetRidgePointsDouble:function(pLinePoints,lineType,vblSaveCounter){var nCounter=0;try{var j=0;var k=0;var lCount=0;var dLengthSegment=0;var dIncrement=20;var m=new armyc2.c2sd.JavaLineArray.ref();var pSpikePoints=null;var pt0;var dSpikeSize=20;var limit=0;var d=0;var bolVertical=0;m.value=Clazz.newArray(1,0);lCount=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,lineType,vblSaveCounter);pSpikePoints=new Array(lCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikePoints);for(j=0;j<vblSaveCounter-1;j++){bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);dLengthSegment=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);limit=Math.floor((dLengthSegment/dIncrement));if(limit<1){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;continue;}
- for(k=0;k<limit;k++){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-k*dIncrement,0);nCounter++;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pSpikePoints[nCounter-1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d-dSpikeSize/2);if(bolVertical!==0){if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,2,dSpikeSize);}else{pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,3,dSpikeSize);}}else{if(pLinePoints[j+1].y<pLinePoints[j].y){pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,0,dSpikeSize);}else{pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,1,dSpikeSize);}}
- nCounter++;pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-d-dSpikeSize,0);nCounter++;}
- pSpikePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nCounter++;}
- for(j=0;j<nCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);}
- for(j=nCounter;j<lCount;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nCounter-1]);}
- pSpikePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetRidgePointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetRidgePointsDouble "+Integer.toString(lineType),exc));}else{throw exc;}}
- return nCounter;},GetSquallDouble:function(pLinePoints,amplitude,quantity,length,numPoints){var counter=0;try{var j=0;var k=0;var StartSegPt;var EndSegPt;var savePoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var savePoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[numPoints-1]);var sign=new armyc2.c2sd.JavaLineArray.ref();var segQty=0;var totalQty=armyc2.c2sd.JavaLineArray.countsupport.GetSquallQty(pLinePoints,quantity,length,numPoints);var pSquallPts=new Array(totalQty);var pSquallSegPts=null;armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSquallPts);sign.value=Clazz.newArray(1,0);sign.value[0]=-1;if(totalQty===0){return 0;}
- for(j=0;j<numPoints-1;j++){StartSegPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);EndSegPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);segQty=armyc2.c2sd.JavaLineArray.countsupport.GetSquallSegQty(StartSegPt,EndSegPt,quantity,length);if(segQty>0){pSquallSegPts=new Array(segQty);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSquallSegPts);}else{continue;}
- armyc2.c2sd.JavaLineArray.lineutility.GetSquallSegment(StartSegPt,EndSegPt,pSquallSegPts,sign,amplitude,quantity,length);for(k=0;k<segQty;k++){pSquallPts[counter].x=pSquallSegPts[k].x;pSquallPts[counter].y=pSquallSegPts[k].y;if(k===0){pSquallPts[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- if(k===segQty-1){pSquallPts[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);}
- pSquallPts[counter].style=0;counter++;}}
- for(j=0;j<counter;j++){if(j<totalQty){pLinePoints[j].x=pSquallPts[j].x;pLinePoints[j].y=pSquallPts[j].y;if(j===0){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savePoint1);}
- if(j===counter-1){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savePoint2);}
- pLinePoints[j].style=pSquallPts[j].style;}}
- if(counter===0){for(j=0;j<pLinePoints.length;j++){if(j===0){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savePoint1);}else{pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(savePoint2);}}
- counter=pLinePoints.length;}
- pSquallPts=null;pSquallSegPts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetSquallDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetSquallDouble",exc));}else{throw exc;}}
- return counter;},GetSevereSquall:function(pLinePoints,numPoints){var l=0;try{var quantity=5;var length=30;var j=0;var k=0;var totalQty=armyc2.c2sd.JavaLineArray.countsupport.GetSquallQty(pLinePoints,quantity,length,numPoints)+2*numPoints;var squallPts=new Array(totalQty);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt5=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt6=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt7=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt8=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var segQty=0;var dist=0;armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(squallPts);for(j=0;j<numPoints-1;j++){dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);segQty=Math.floor((dist/30));for(k=0;k<segQty;k++){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30+20);pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30+25);pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30+30);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,2,5,0);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt5,pt5,3,5,0);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt6,pt6,2,5,5);pt4.style=5;squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);pt7=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30+5);pt8=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*30+10);pt8.style=5;squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt7);squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt8);}
- squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j+1],pLinePoints[j],5);pt0.style=5;squallPts[l++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);}
- for(j=0;j<l;j++){if(j<totalQty){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(squallPts[j]);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetSevereSquall",new armyc2.c2sd.renderer.utilities.RendererException("GetSevereSquall",exc));}else{throw exc;}}
- return l;},GetConvergancePointsDouble:function(pLinePoints,vblCounter){var counter=vblCounter;try{var j=0;var k=0;var d=0;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var tempPts=new Array(vblCounter);var tempPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var numJags=0;for(j=0;j<vblCounter;j++){tempPts[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- pLinePoints[vblCounter-1].style=5;for(j=0;j<vblCounter-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPts[j]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPts[j+1]);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);numJags=Math.floor((d/10));if(d-numJags*10<5){numJags-=1;}
- for(k=0;k<numJags;k++){tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,k*10+5,0);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(tempPt,pt1,5);tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,tempPt,tempPt,2,5,5);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,(k+1)*10,0);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(tempPt,pt1,5);tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,tempPt,tempPt,3,5,5);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetConvergancePointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetConvergancePointsDouble",exc));}else{throw exc;}}
- return counter;},GetITDPointsDouble:function(pLinePoints,vblCounter){var counter=0;try{var j=0;var k=0;var d=0;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var tempPts=new Array(vblCounter);var tempPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var numJags=0;var lineStyle=19;for(j=0;j<vblCounter;j++){tempPts[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- for(j=0;j<vblCounter-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPts[j]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPts[j+1]);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);numJags=Math.floor((d/15));if(d-numJags*10<5){numJags-=1;}
- if(numJags===0){pt0.style=19;pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pt1.style=5;pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}
- for(k=0;k<numJags;k++){tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,k*15+5,lineStyle);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);if(k<numJags-1){tempPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(tempPt,pt1,10,5);}else{tempPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPts[j+1]);tempPt.style=5;}
- pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPt);if(lineStyle===19){lineStyle=25;}else{lineStyle=19;}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetITDPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetITDPointsDouble",exc));}else{throw exc;}}
- return counter;},GetXPoints:function(pOriginalLinePoints,XPoints,vblCounter){var xCounter=0;try{var j=0;var k=0;var d=0;var pt0;var pt1;var pt2;var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt5=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt6=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var numThisSegment=0;var distInterval=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);numThisSegment=Math.floor(((d-20)/20));distInterval=d/numThisSegment;for(k=0;k<numThisSegment;k++){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalLinePoints[j],pOriginalLinePoints[j+1],distInterval/2+distInterval*k);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pOriginalLinePoints[j+1],5);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pOriginalLinePoints[j+1],-5);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalLinePoints[j],pt1,pt1,2,5);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalLinePoints[j],pt1,pt1,3,5);pt4.style=5;pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalLinePoints[j],pt2,pt2,2,5);pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalLinePoints[j],pt2,pt2,3,5);pt6.style=5;XPoints[xCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);XPoints[xCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt6);XPoints[xCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);XPoints[xCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetXPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetXPointsDouble",exc));}else{throw exc;}}
- return xCounter;},getEllipsePoints:function(ptCenter,ptWidth,ptHeight){var pEllipsePoints=null;try{pEllipsePoints=new Array(37);var l=0;var dFactor=0;var a=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptCenter,ptWidth);var b=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptCenter,ptHeight);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pEllipsePoints);for(l=1;l<37;l++){dFactor=(20.0*l)*3.141592653589793/180.0;pEllipsePoints[l-1].x=ptCenter.x+Math.floor((a*Math.cos(dFactor)));pEllipsePoints[l-1].y=ptCenter.y+Math.floor((b*Math.sin(dFactor)));pEllipsePoints[l-1].style=0;}
- pEllipsePoints[36]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints[0]);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetXPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetXPointsDouble",exc));}else{throw exc;}}
- return pEllipsePoints;},GetLVOPoints:function(pOriginalLinePoints,pLinePoints,vblCounter){var lEllipseCounter=0;try{var dAngle=0;var d=0;var a=4;var b=8;var dFactor=0;var lHowManyThisSegment=0;var j=0;var k=0;var l=0;var t=0;var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pEllipsePoints2=new Array(37);var distInterval=0;for(j=0;j<vblCounter-1;j++){armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pEllipsePoints2);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);lHowManyThisSegment=Math.floor(((d-20)/20));distInterval=d/lHowManyThisSegment;dAngle=armyc2.c2sd.JavaLineArray.lineutility.CalcSegmentAngleDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);dAngle=dAngle+1.5707963267948966;for(k=0;k<lHowManyThisSegment;k++){ptCenter=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalLinePoints[j],pOriginalLinePoints[j+1],k*distInterval);for(l=1;l<37;l++){dFactor=(20.0*l)*3.141592653589793/180.0;pEllipsePoints2[l-1].x=ptCenter.x+Math.floor((a*Math.cos(dFactor)));pEllipsePoints2[l-1].y=ptCenter.y+Math.floor((b*Math.sin(dFactor)));pEllipsePoints2[l-1].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.RotateGeometryDouble(pEllipsePoints2,36,Math.floor((dAngle*180/3.141592653589793)));pEllipsePoints2[36]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[35]);pEllipsePoints2[36].style=5;for(l=0;l<37;l++){pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[l]);lEllipseCounter++;}}
- if(j===vblCounter-2){ptCenter=pOriginalLinePoints[j+1];for(l=1;l<37;l++){dFactor=(20.0*l)*3.141592653589793/180.0;pEllipsePoints2[l-1].x=ptCenter.x+Math.floor((a*Math.cos(dFactor)));pEllipsePoints2[l-1].y=ptCenter.y+Math.floor((b*Math.sin(dFactor)));pEllipsePoints2[l-1].style=0;}
- armyc2.c2sd.JavaLineArray.lineutility.RotateGeometryDouble(pEllipsePoints2,36,Math.floor((dAngle*180/3.141592653589793)));pEllipsePoints2[36]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[35]);pEllipsePoints2[36].style=5;for(l=0;l<37;l++){pLinePoints[lEllipseCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pEllipsePoints2[l]);lEllipseCounter++;}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetLVOPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetLVOPointsDouble",exc));}else{throw exc;}}
- return lEllipseCounter;},GetIcingPointsDouble:function(pLinePoints,vblCounter){var counter=0;try{var j=0;var origPoints=new Array(vblCounter);var nDirection=-1;var k=0;var numSegments=0;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var midPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();for(j=0;j<vblCounter;j++){origPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- var distInterval=0;for(j=0;j<vblCounter-1;j++){numSegments=Math.floor(armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(origPoints[j],origPoints[j+1]));numSegments/=15;distInterval=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(origPoints[j],origPoints[j+1])/numSegments;nDirection=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(origPoints[j],origPoints[j+1],origPoints,vblCounter,j,31740000);for(k=0;k<numSegments;k++){if(k===0){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(origPoints[j]);}else{pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(origPoints[j],origPoints[j+1],k*distInterval,0);}
- pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(origPoints[j],origPoints[j+1],k*distInterval+10,5);midPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(origPoints[j],origPoints[j+1],k*distInterval+5,0);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(origPoints[j],origPoints[j+1],midPt,nDirection,5,5);pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[counter+1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[counter+2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midPt);pLinePoints[counter+3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);counter+=4;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetIcingPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetIcingPointsDouble",exc));}else{throw exc;}}
- return counter;},GetAnchorageDouble:function(vbPoints2,numPts){var lFlotCounter=0;try{var j=0;var k=0;var l=0;var x1=0;var y1=0;var numSegPts=-1;var lFlotCount=0;var lNumSegs=0;var dDistance=0;var vbPoints=null;var points=null;var points2=null;var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetAnchorageCountDouble(vbPoints2,numPts);vbPoints=Clazz.newArray(2*numPts,0);for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(vbPoints2[j].x);k++;vbPoints[k]=Math.floor(vbPoints2[j].y);k++;}
- k=0;var bFlip=new armyc2.c2sd.JavaLineArray.ref();bFlip.value=Clazz.newArray(1,0);var lDirection=new armyc2.c2sd.JavaLineArray.ref();lDirection.value=Clazz.newArray(1,0);var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();lLastDirection.value=Clazz.newArray(1,0);for(l=0;l<numPts-1;l++){pt1.x=vbPoints[2*l];pt1.y=vbPoints[2*l+1];pt2.x=vbPoints[2*l+2];pt2.y=vbPoints[2*l+3];if(l>0){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt2,20);}
- dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);lNumSegs=Math.floor((dDistance/20));if(lNumSegs>0){points2=Clazz.newArray(lNumSegs*32,0);numSegPts=armyc2.c2sd.JavaLineArray.flot.GetAnchorageFlotSegment(vbPoints,Math.floor(pt1.x),Math.floor(pt1.y),Math.floor(pt2.x),Math.floor(pt2.y),l,points2,bFlip,lDirection,lLastDirection);points=Clazz.newArray(numSegPts,0);for(j=0;j<numSegPts;j++){points[j]=points2[j];}
- for(j=0;j<Math.floor(numSegPts/3);j++){x1=points[k];y1=points[k+1];k+=3;if(j%10===0){pt.x=x1;pt.y=y1;pt.style=5;}else if((j+1)%10===0){if(lFlotCounter<lFlotCount){vbPoints2[lFlotCounter].x=x1;vbPoints2[lFlotCounter++].y=y1;vbPoints2[lFlotCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);continue;}else{break;}}
- if(lFlotCounter<lFlotCount){vbPoints2[lFlotCounter].x=x1;vbPoints2[lFlotCounter].y=y1;lFlotCounter++;}else{break;}}
- k=0;points=null;}else{if(lFlotCounter<lFlotCount){vbPoints2[lFlotCounter].x=vbPoints[2*l];vbPoints2[lFlotCounter].y=vbPoints[2*l+1];lFlotCounter++;}}}
- for(j=lFlotCounter-1;j<lFlotCount;j++){vbPoints2[j].style=5;}
- vbPoints=null;points=null;points2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetAnchorageDouble",new armyc2.c2sd.renderer.utilities.RendererException("GetAnchorageDouble",exc));}else{throw exc;}}
- return lFlotCounter;},GetPipePoints:function(pLinePoints,vblCounter){var counter=0;try{var pOriginalPoints=new Array(vblCounter);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var xPoints=new Array(pLinePoints.length);var xCounter=0;var j=0;var k=0;for(j=0;j<vblCounter;j++){pOriginalPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- var numSegs=0;var d=0;armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(xPoints);for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalPoints[j],pOriginalPoints[j+1]);numSegs=Math.floor((d/20));for(k=0;k<numSegs;k++){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],20*k);pt0.style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],20*k+10);pt1.style=5;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],20*k+10);pt2.style=20;pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);xPoints[xCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);}
- if(numSegs===0){pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j]);pLinePoints[counter++].style=0;pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j+1]);pLinePoints[counter++].style=5;}else{pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[counter-1]);pLinePoints[counter++].style=0;pLinePoints[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j+1]);pLinePoints[counter++].style=5;}}
- for(k=0;k<xCounter;k++){pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(xPoints[k]);}
- pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[counter]);pOriginalPoints=null;xPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetPipePoints",new armyc2.c2sd.renderer.utilities.RendererException("GetPipePoints",exc));}else{throw exc;}}
- return counter;},GetReefPoints:function(pLinePoints,vblCounter){var counter=0;try{var pOriginalPoints=new Array(vblCounter);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();for(var j=0;j<vblCounter;j++){pOriginalPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- var numSegs=0;var direction=0;var d=0;for(var j=0;j<vblCounter-1;j++){if(pOriginalPoints[j].x<pOriginalPoints[j+1].x)
- direction=2;else
- direction=3;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalPoints[j],pOriginalPoints[j+1]);numSegs=Math.floor((d/40));for(var k=0;k<numSegs;k++){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],40*k);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pOriginalPoints[j+1],10);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalPoints[j],pOriginalPoints[j+1],pt1,direction,15);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pOriginalPoints[j+1],20);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalPoints[j],pOriginalPoints[j+1],pt2,direction,5);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pOriginalPoints[j+1],30);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalPoints[j],pOriginalPoints[j+1],pt3,direction,20);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],40*(k+1));pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);}
- if(numSegs===0){pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j]);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j+1]);}}
- pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[vblCounter-1]);pOriginalPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetReefPoints",new armyc2.c2sd.renderer.utilities.RendererException("GetReefPoints",exc));}else{throw exc;}}
- return counter;},GetRestrictedAreaPoints:function(pLinePoints,vblCounter){var counter=0;try{var pOriginalPoints=new Array(vblCounter);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();for(var j=0;j<vblCounter;j++){pOriginalPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- var direction=0;var numSegs=0;var d=0;for(var j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalPoints[j],pOriginalPoints[j+1]);numSegs=Math.floor((d/15));if(pOriginalPoints[j].x<pOriginalPoints[j+1].x)
- direction=3;else
- direction=2;for(var k=0;k<numSegs;k++){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],15*k);pt0.style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pOriginalPoints[j],pOriginalPoints[j+1],15*k+10);pt1.style=5;pt2=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pOriginalPoints[j],pOriginalPoints[j+1],pt2,direction,10);pt3.style=5;pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}
- if(numSegs===0){pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j]);pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[j+1]);}}
- pLinePoints[counter-1].style=0;pLinePoints[counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalPoints[vblCounter-1]);pOriginalPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetRestrictedAreaPoints",new armyc2.c2sd.renderer.utilities.RendererException("GetRestrictedAreaPoints",exc));}else{throw exc;}}
- return counter;},getOverheadWire:function(pLinePoints,vblCounter){var counter=0;try{var j=0;var pt=null;var pt2=null;var x=0;var y=0;var pts=new java.util.ArrayList();for(j=0;j<vblCounter;j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);x=pt.x;y=pt.y;pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.y-=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x-=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.y-=20;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x+=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.y-=5;pt2.style=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x-=2;pt2.y-=10;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x+=2;pt2.y-=10;pt2.style=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x-=7;pt2.y-=17;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x-=5;pt2.y-=20;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x+=5;pt2.y-=20;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x+=7;pt2.y-=17;pt2.style=5;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.y-=20;pts.add(pt2);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt2.x+=8;pt2.y-=12;pt2.style=5;pts.add(pt2);}
- for(j=0;j<vblCounter-1;j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);if(pt.x<pt2.x){pt.x+=5;pt.y-=10;pt2.x-=5;pt2.y-=10;pt2.style=5;}else{pt.x-=5;pt.y-=10;pt2.x+=5;pt2.y-=10;pt2.style=5;}
- pts.add(pt);pts.add(pt2);}
- for(j=0;j<pts.size();j++){pLinePoints[j]=pts.get(j);counter++;}
- for(j=counter;j<pLinePoints.length;j++)
- pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[counter-1]);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetOverheadWire",new armyc2.c2sd.renderer.utilities.RendererException("GetOverheadWire",exc));}else{throw exc;}}
- return counter;},GetLineArray2Double:function(lineType,pLinePoints,vblCounter,vblSaveCounter,shapes,clipBounds,rev){var points=new java.util.ArrayList();try{var client=armyc2.c2sd.JavaLineArray.CELineArray.getClient();if(pLinePoints===null||pLinePoints.length<2)
- return null;var segments=null;var dMRR=0;var n=0;var bolVertical=0;var dExtendLength=0;var dWidth=0;var nQuadrant=0;var lLinestyle=0;var pointCounter=0;var offsetX=new armyc2.c2sd.JavaLineArray.ref();var offsetY=new armyc2.c2sd.JavaLineArray.ref();var b=0;var b1=0;var dRadius=0;var d1=0;var d=0;var d2=0;var m=new armyc2.c2sd.JavaLineArray.ref();var direction=0;var nCounter=0;var j=0;var k=0;var middleSegment=-1;var dMBR=armyc2.c2sd.JavaLineArray.lineutility.MBRDistance(pLinePoints,vblSaveCounter);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt5=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt6=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt7=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pt8=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var ptYIntercept=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var ptYIntercept1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pArrowPoints=new Array(3);var arcPts=new Array(26);var circlePoints=new Array(100);var pts=null;var pts2=null;var midpt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var midpt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pOriginalLinePoints=null;var pUpperLinePoints=null;var pLowerLinePoints=null;var pUpperLowerLinePoints=null;var calcPoint0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var calcPoint2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var calcPoint3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var calcPoint4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var acCounter=0;var acPoints=new Array(6);var lFlotCount=0;if(vblCounter>2)
- pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[2]);pt0.style=0;pt1.style=0;pt2.style=0;var xPoints=null;pOriginalLinePoints=new Array(vblSaveCounter);for(j=0;j<vblSaveCounter;j++){pOriginalLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- switch(lineType){case 15000001:armyc2.c2sd.JavaLineArray.lineutility.getExteriorPoints(pLinePoints,vblSaveCounter,lineType,false);acCounter=vblSaveCounter;break;case 12000000:pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[0].x-=10;pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[1].x+=10;pLinePoints[1].style=10;pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[2].y+=10;pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[3].y-=10;acCounter=4;break;case 14000000:armyc2.c2sd.JavaLineArray.lineutility.CalcMBRPoints(pLinePoints,pLinePoints.length,pt0,pt2);pt1=new armyc2.c2sd.JavaLineArray.POINT2(pt0);pt1.x=pt2.x;pt3=new armyc2.c2sd.JavaLineArray.POINT2(pt0);pt3.y=pt2.y;pLinePoints=new Array(5);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);acCounter=5;break;case 15000003:pOriginalLinePoints=new Array(5);pOriginalLinePoints[0]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[0]);pOriginalLinePoints[1]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[1]);pOriginalLinePoints[2]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[2]);pOriginalLinePoints[3]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[3]);pOriginalLinePoints[4]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[0]);var buffer=pLinePoints[0].style;pt0=pLinePoints[0];pt0.x-=buffer;pt0.y-=buffer;pt1=pLinePoints[1];pt1.x+=buffer;pt1.y-=buffer;pt2=pLinePoints[2];pt2.x+=buffer;pt2.y+=buffer;pt3=pLinePoints[3];pt3.x-=buffer;pt3.y+=buffer;pLinePoints=new Array(5);pLinePoints[0]=new armyc2.c2sd.JavaLineArray.POINT2(pt0);pLinePoints[1]=new armyc2.c2sd.JavaLineArray.POINT2(pt1);pLinePoints[2]=new armyc2.c2sd.JavaLineArray.POINT2(pt2);pLinePoints[3]=new armyc2.c2sd.JavaLineArray.POINT2(pt3);pLinePoints[4]=new armyc2.c2sd.JavaLineArray.POINT2(pt0);acCounter=5;vblSaveCounter=5;break;case 13000000:pt0=pLinePoints[0];pt1=pLinePoints[1];pt2=pLinePoints[2];pLinePoints=armyc2.c2sd.JavaLineArray.arraysupport.getEllipsePoints(pt0,pt1,pt2);acCounter=37;break;case 23200000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.getOverheadWire(pLinePoints,vblSaveCounter);break;case 23200001:for(j=0;j<vblSaveCounter;j++){pLinePoints[j].style=1;}
- for(j=vblSaveCounter;j<2*vblSaveCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j-vblSaveCounter]);pLinePoints[j].style=20;}
- acCounter=pLinePoints.length;break;case 22121000:acCounter=pLinePoints.length;break;case 322510000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetReefPoints(pLinePoints,vblSaveCounter);acCounter=vblCounter;break;case 32134000:armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-5],pLinePoints[vblCounter-4],10,10,pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[vblCounter-3+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- pLinePoints[vblCounter-4].style=5;pLinePoints[vblCounter-1].style=5;acCounter=vblCounter;break;case 32530000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetRestrictedAreaPoints(pLinePoints,vblSaveCounter);acCounter=vblCounter;break;case 32550000:for(j=0;j<vblSaveCounter;j++){pLinePoints[j].style=1;}
- pLinePoints[vblSaveCounter-1].style=5;pt0=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble(pLinePoints,vblSaveCounter-1);armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(pt0,20,26,arcPts,0);for(j=vblSaveCounter;j<vblSaveCounter+26;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcPts[j-vblSaveCounter]);}
- pLinePoints[j-1].style=5;pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pt1.y-=12;pt1.style=0;pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pt2.y+=12;pt2.style=5;pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pt3.y+=3;pt3.style=0;pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pt4.y+=3;pLinePoints[j++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[j++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[j++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pt4.style=5;pLinePoints[j++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);vblCounter=j;acCounter=vblCounter;break;case 32680000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetPipePoints(pLinePoints,vblSaveCounter);acCounter=vblCounter;break;case 32231500:n=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pLinePoints[0],pLinePoints[1],pLinePoints,vblSaveCounter,0,lineType);nQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pLinePoints[0],pLinePoints[1]);switch(nQuadrant){case 4:switch(n){case 1:case 2:break;case 0:case 3:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;default:break;}
- break;case 1:switch(n){case 1:case 3:break;case 0:case 2:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;default:break;}
- break;case 2:switch(n){case 1:case 2:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;case 0:case 3:break;default:break;}
- break;case 3:switch(n){case 1:case 3:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;case 0:case 2:break;default:break;}
- break;default:break;}
- lFlotCount=armyc2.c2sd.JavaLineArray.arraysupport.GetAnchorageDouble(pLinePoints,vblSaveCounter);acCounter=lFlotCount;break;case 32231400:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetAnchorageDouble(pLinePoints,vblSaveCounter);break;case 32153000:var xCount=armyc2.c2sd.JavaLineArray.countsupport.GetXPointsCount(pOriginalLinePoints,vblSaveCounter);var xPoints2=new Array(xCount);var lvoCount=armyc2.c2sd.JavaLineArray.countsupport.GetLVOCount(pOriginalLinePoints,vblSaveCounter);var lvoPoints=new Array(lvoCount);xCount=armyc2.c2sd.JavaLineArray.arraysupport.GetXPoints(pOriginalLinePoints,xPoints2,vblSaveCounter);lvoCount=armyc2.c2sd.JavaLineArray.arraysupport.GetLVOPoints(pOriginalLinePoints,lvoPoints,vblSaveCounter);for(k=0;k<xCount;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(xPoints2[k]);}
- pLinePoints[xCount-1].style=5;for(k=0;k<lvoCount;k++){pLinePoints[xCount+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lvoPoints[k]);}
- acCounter=xCount+lvoCount;break;case 32152000:if(pLinePoints[0].x<pLinePoints[1].x)
- armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotDouble(pLinePoints,vblSaveCounter);acCounter=lFlotCount;break;case 32151000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetLVOPoints(pOriginalLinePoints,pLinePoints,vblSaveCounter);break;case 31740000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetIcingPointsDouble(pLinePoints,vblSaveCounter);acCounter=vblCounter;break;case 31720000:n=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pLinePoints[0],pLinePoints[1],pLinePoints,vblSaveCounter,0,lineType);nQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pLinePoints[0],pLinePoints[1]);switch(nQuadrant){case 4:switch(n){case 0:case 3:break;case 1:case 2:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;default:break;}
- break;case 1:switch(n){case 0:case 2:break;case 1:case 3:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;default:break;}
- break;case 2:switch(n){case 0:case 3:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;case 1:case 2:break;default:break;}
- break;case 3:switch(n){case 0:case 2:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);break;case 1:case 3:break;default:break;}
- break;default:break;}
- lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotDouble(pLinePoints,vblSaveCounter);acCounter=lFlotCount;break;case 31148000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetITDPointsDouble(pLinePoints,vblSaveCounter);break;case 31147000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetConvergancePointsDouble(pLinePoints,vblSaveCounter);break;case 31142000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetRidgePointsDouble(pLinePoints,lineType,vblSaveCounter);acCounter=vblCounter;break;case 31141000:case 31144000:case 31145000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetSquallDouble(pLinePoints,10,6,30,vblSaveCounter);acCounter=vblCounter;break;case 31143000:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetSevereSquall(pLinePoints,vblSaveCounter);acCounter=vblCounter;break;case 31134100:case 31134200:case 31134300:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetSFPointsDouble(pLinePoints,vblSaveCounter,lineType);acCounter=vblCounter;break;case 31134000:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetOccludedPointsDouble(pLinePoints,vblSaveCounter,lineType);for(j=0;j<vblSaveCounter;j++)
- pLinePoints[vblCounter+j]=pOriginalLinePoints[j];vblCounter+=vblSaveCounter;acCounter=vblCounter;break;case 31133200:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetOFYPointsDouble(pLinePoints,vblSaveCounter,lineType);acCounter=vblCounter;break;case 31133000:case 31133100:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetOccludedPointsDouble(pLinePoints,vblSaveCounter,lineType);for(j=0;j<vblSaveCounter;j++)
- pLinePoints[vblCounter+j]=pOriginalLinePoints[j];vblCounter+=vblSaveCounter;acCounter=vblCounter;break;case 31132000:case 31132100:lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlot2Double(pLinePoints,vblSaveCounter,lineType);for(j=0;j<vblSaveCounter;j++)
- pLinePoints[vblCounter-vblSaveCounter+j]=pOriginalLinePoints[j];acCounter=lFlotCount+vblSaveCounter;break;case 31132200:case 31132300:lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlot2Double(pLinePoints,vblSaveCounter,lineType);acCounter=lFlotCount;break;case 31131200:case 31131300:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetATWallPointsDouble(pLinePoints,lineType,vblSaveCounter);acCounter=vblCounter;break;case 31131000:case 31131100:vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetATWallPointsDouble(pLinePoints,lineType,vblSaveCounter);pLinePoints[vblCounter-1].style=5;for(j=0;j<vblSaveCounter;j++)
- pLinePoints[vblCounter+j]=pOriginalLinePoints[j];vblCounter+=vblSaveCounter;pLinePoints[vblCounter-1].style=5;acCounter=vblCounter;break;case 22524000:case 23191000:case 23192000:case 23193000:armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pLinePoints[2],pt0,pt1);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pt0);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pLinePoints[0],d);armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pt4,pt2,pt3);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);switch(lineType){case 22524000:case 23193000:pLinePoints[0].style=0;pLinePoints[1].style=5;pLinePoints[2].style=0;break;case 23191000:pLinePoints[0].style=1;pLinePoints[1].style=5;pLinePoints[2].style=1;break;case 23192000:pLinePoints[1].style=5;if(pt0.x<=pt1.x){if(pLinePoints[1].y<=pLinePoints[2].y){pLinePoints[0].style=0;pLinePoints[2].style=1;}else{pLinePoints[0].style=1;pLinePoints[2].style=0;}}else{if(pLinePoints[1].y>=pLinePoints[2].y){pLinePoints[0].style=0;pLinePoints[2].style=1;}else{pLinePoints[0].style=1;pLinePoints[2].style=0;}}
- break;default:break;}
- acCounter=4;break;case 23224000:armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pLinePoints[2],pt0,pt1);pLinePoints[0].style=1;pLinePoints[1].style=5;pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[2].style=1;pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[3].style=5;acCounter=4;break;case 23194000:pts=new Array(4);for(j=0;j<4;j++){pts[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(pLinePoints[0],pLinePoints[1],pLinePoints[2]);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pts[0],pts[1],pts[1],d,0);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pts[0],pts[1],pts[0],d,5);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pts[0],pts[1],pts[1],-d,0);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pts[0],pts[1],pts[0],-d,5);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],0);midpt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[0],midpt,d);pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(pts[0],pts[1],midpt,105,dRadius/2);pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(pts[0],pts[1],midpt,-75,dRadius/2);pLinePoints[5].style=5;midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pts[0],pts[1],0);midpt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pts[1],midpt,d);pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(pts[0],pts[1],midpt,105,dRadius/2);pLinePoints[7]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(pts[0],pts[1],midpt,-75,dRadius/2);pLinePoints[7].style=5;acCounter=8;break;case 221311000:case 22340000:case 2237000:armyc2.c2sd.JavaLineArray.arraysupport.AreaWithCenterFeatureDouble(pLinePoints,vblCounter,lineType);acCounter=vblCounter;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,vblCounter,points);break;case 22431100:for(j=0;j<vblCounter;j++)
- pLinePoints[j].style=1;acCounter=vblCounter;break;case 22350000:armyc2.c2sd.JavaLineArray.arraysupport.AreaWithCenterFeatureDouble(pLinePoints,vblCounter,lineType);pLinePoints[vblCounter-1].style=5;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,vblCounter,points);xPoints=armyc2.c2sd.JavaLineArray.lineutility.LineOfXPoints(pOriginalLinePoints);for(j=0;j<xPoints.size();j++){points.add(xPoints.get(j));}
- acCounter=points.size();break;case 23340000:bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical===0){if(pt0.y>pt1.y){direction=0;}else{direction=1;}}
- if(bolVertical!==0&&m.value[0]<=1){if(pt0.x<pt1.x){direction=3;}else{direction=2;}}
- if(bolVertical!==0&&m.value[0]>1){if(pt0.x<pt1.x&&pt0.y>pt1.y){direction=1;}
- if(pt0.x<pt1.x&&pt0.y<pt1.y){direction=0;}
- if(pt0.x>pt1.x&&pt0.y>pt1.y){direction=1;}
- if(pt0.x>pt1.x&&pt0.y<pt1.y){direction=0;}}
- if(dMBR/20>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/20<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR<250)
- dMBR=250;if(dMBR>500)
- dMBR=500;pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,direction,dMBR/20);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,direction,dMBR/20);acCounter=4;break;case 211400000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=50;break;case 212600000:case 212500000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=50;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);break;case 211600000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=32;break;case 211900000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=75;break;case 212100000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=29;break;case 23173000:armyc2.c2sd.JavaLineArray.arraysupport.GetIsolatePointsDouble(pLinePoints,lineType);acCounter=29;break;case 22624000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetZONEPointsDouble2(pLinePoints,lineType,vblSaveCounter);break;case 23111001:pUpperLinePoints=new Array(vblSaveCounter);pLowerLinePoints=new Array(vblSaveCounter);pUpperLowerLinePoints=new Array(2*vblCounter);for(j=0;j<vblSaveCounter;j++)
- pLowerLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);for(j=0;j<vblSaveCounter;j++)
- pUpperLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.CoordIL2Double(1,pUpperLinePoints,1,vblSaveCounter,lineType,30);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.CoordIL2Double(1,pLowerLinePoints,0,vblSaveCounter,lineType,30);for(j=0;j<vblSaveCounter;j++)
- pUpperLowerLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLinePoints[j]);for(j=0;j<vblSaveCounter;j++)
- pUpperLowerLinePoints[j+vblSaveCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblSaveCounter-j-1]);pUpperLowerLinePoints[2*vblSaveCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLowerLinePoints[0]);vblCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetZONEPointsDouble2(pUpperLowerLinePoints,lineType,2*vblSaveCounter+1);for(j=0;j<vblCounter;j++)
- pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pUpperLowerLinePoints[j]);acCounter=vblCounter;break;case 23111000:case 23113000:case 23115000:case 23114000:case 23350000:case 22134000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetZONEPointsDouble2(pLinePoints,lineType,vblSaveCounter);break;case 23134000:case 23112000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetATWallPointsDouble2(pLinePoints,lineType,vblSaveCounter);break;case 22528000:for(j=0;j<vblCounter;j++)
- pLinePoints[j].style=1;acCounter=vblCounter;break;case 22421000:armyc2.c2sd.JavaLineArray.arraysupport.CoordFEBADouble(pLinePoints,vblCounter);acCounter=pLinePoints.length;break;case 22224000:case 22222000:if(rev===0){dMRR=pOriginalLinePoints[0].style;if(dMRR<=0){dMRR=1;}
- armyc2.c2sd.JavaLineArray.lineutility.GetSAAFRSegment(pLinePoints,lineType,dMRR,rev);acCounter=6;}
- if(rev===1){return armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2Double(22223000,pLinePoints,vblCounter,vblSaveCounter,shapes,clipBounds,rev);}
- break;case 22222001:case 22224001:case 22225000:case 22223000:case 22221000:dMRR=armyc2.c2sd.JavaLineArray.arraysupport.dACP;armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(acPoints);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(arcPts);acCounter=0;for(j=0;j<vblSaveCounter;j++)
- if(pOriginalLinePoints[j].style<=0)
- pOriginalLinePoints[j].style=1;for(j=0;j<vblSaveCounter-1;j++){dMBR=pOriginalLinePoints[j].style;acPoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j]);acPoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j+1]);armyc2.c2sd.JavaLineArray.lineutility.GetSAAFRSegment(acPoints,lineType,dMBR,rev);for(k=0;k<6;k++){pLinePoints[acCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(acPoints[k]);acCounter++;}}
- var nextCircleSize=0;var currentCircleSize=0;for(j=0;j<vblSaveCounter-1;j++){currentCircleSize=pOriginalLinePoints[j].style;nextCircleSize=pOriginalLinePoints[j+1].style;arcPts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j]);dMBR=currentCircleSize;armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(arcPts[0],dMBR,26,arcPts,0);arcPts[25].style=5;for(k=0;k<26;k++){pLinePoints[acCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcPts[k]);acCounter++;}
- arcPts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pOriginalLinePoints[j+1]);dMBR=currentCircleSize;armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(arcPts[0],dMBR,26,arcPts,0);arcPts[25].style=5;for(k=0;k<26;k++){pLinePoints[acCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcPts[k]);acCounter++;}}
- break;case 23164000:case 23180000:acCounter=vblCounter;break;case 26400000:case 26420000:case 26410000:case 26430000:case 26440000:acCounter=vblCounter;break;case 23410000:armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(circlePoints);pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[3]);dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(pt0,dRadius,100,circlePoints,0);for(j=0;j<100;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(circlePoints[j]);}
- pLinePoints[99].style=5;dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt2);armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(pt0,dRadius,100,circlePoints,0);for(j=0;j<100;j++){pLinePoints[100+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(circlePoints[j]);}
- pLinePoints[199].style=5;dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt3);armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(pt0,dRadius,100,circlePoints,0);for(j=0;j<100;j++){pLinePoints[200+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(circlePoints[j]);}
- acCounter=300;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,vblCounter,points);break;case 25211000:d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(d<=30){armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2Double(22522220,pLinePoints,5,2,shapes,clipBounds,rev);break;}
- pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt0,m);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt0,-30,0);if(m.value[0]<1){pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,2,10);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,2,10);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,3,10);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,3,10);}else{pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,0,10);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,0,10);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,1,10);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,1,10);}
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt1,pt0,30);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt2,30,30,pArrowPoints,0);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pArrowPoints[0]);d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[3],pArrowPoints[0]);pLinePoints[3].style=5;if(d<d1){pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[4].style=0;pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[0]);pLinePoints[5].style=0;pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[1]);pLinePoints[6].style=0;pLinePoints[7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[2]);pLinePoints[7].style=0;pLinePoints[8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[3]);}else{pLinePoints[4]=pLinePoints[3];pLinePoints[4].style=0;pLinePoints[5]=pArrowPoints[0];pLinePoints[5].style=0;pLinePoints[6]=pArrowPoints[1];pLinePoints[6].style=0;pLinePoints[7]=pArrowPoints[2];pLinePoints[7].style=0;pLinePoints[8]=pLinePoints[0];}
- acCounter=9;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);break;case 25212000:pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);pt2.x=(pt0.x+pt1.x)/2;pt2.y=(pt0.y+pt1.y)/2;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt0,m);if(m.value[0]<1){pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,2,10);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,2,10);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,3,10);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,3,10);}else{pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,0,10);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,0,10);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,1,10);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,1,10);}
- pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[5].style=0;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt1,pt0,50);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt2,pt0,20,20,pArrowPoints,0);pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[1]);pLinePoints[7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[0]);pLinePoints[8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[2]);pLinePoints[8].style=0;pLinePoints[9]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[1]);acCounter=10;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);break;case 25223000:case 25224000:case 25225000:nCounter=vblSaveCounter;pLinePoints[vblSaveCounter-1].style=5;for(j=0;j<vblSaveCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);if(d<20)
- continue;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pLinePoints[j+1],-3*d/4,0);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pLinePoints[j+1],-1*d/4,5);if(pLinePoints[j].x<pLinePoints[j+1].x){if(m.value[0]<1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,2,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,2,10);}
- if(m.value[0]>=1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,1,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,1,10);}}
- if(pLinePoints[j].x>pLinePoints[j+1].x){if(m.value[0]<1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,3,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,3,10);}
- if(m.value[0]>=1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,0,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,0,10);}}
- if(bolVertical===0){if(pLinePoints[j].y>pLinePoints[j+1].y){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,0,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,0,10);}else{pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,1,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,1,10);}}
- pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);nCounter++;pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);nCounter++;d=10;if(dMBR/20<armyc2.c2sd.JavaLineArray.arraysupport.minLength){d=5;}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt2,pt3,Math.floor(d),Math.floor(d),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);nCounter++;}
- if(lineType===25224000){armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt3,pt2,Math.floor(d),Math.floor(d),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);nCounter++;}}
- if(lineType===25225000){if(pLinePoints[j].x<pLinePoints[j+1].x){if(m.value[0]<1)
- {pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,2,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,2,15);}
- if(m.value[0]>=1)
- {pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,1,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,1,15);}}
- if(pLinePoints[j].x>pLinePoints[j+1].x){if(m.value[0]<1)
- {pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,3,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,3,15);}
- if(m.value[0]>=1)
- {pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,0,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,0,15);}}
- if(bolVertical===0){if(pLinePoints[j].y>pLinePoints[j+1].y){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,0,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,0,15);}else{pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt2,1,15);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt3,1,15);}}
- pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);nCounter++;pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);nCounter++;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt3,pt2,Math.floor(d),Math.floor(d),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[nCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);nCounter++;}}}
- acCounter=nCounter;break;case 24220000:for(j=0;j<vblCounter;j++)
- pLinePoints[j].style=1;acCounter=vblCounter;break;case 22330000:d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);if(d<20)
- pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[0],pLinePoints[1],21);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[0],pLinePoints[1],20);armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);d=dMBR;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[vblCounter-8],pLinePoints[vblCounter-7],20);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-8]);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-7]);if(d/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){d=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(d/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength){d=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(d<250)
- d=250;if(d>500)
- d=250;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt1,pt2,Math.floor(Math.floor(d)/10),Math.floor(Math.floor(d)/10),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-6+k]=pArrowPoints[k];}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt1,pt0,Math.floor(Math.floor(d)/10),Math.floor(Math.floor(d)/10),pArrowPoints,18);for(k=0;k<3;k++){pLinePoints[vblCounter-3+k]=pArrowPoints[k];}
- acCounter=vblCounter;break;case 23225000:armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pLinePoints[2],pt4,pt5);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);for(j=0;j<vblCounter;j++){pLinePoints[j].style=1;}
- pt0=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLinePoints[0],pLinePoints[1],0);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLinePoints[2],pLinePoints[3],0);var savepoints=null;var drawJaggies=new Boolean(true);if(clipBounds!==null){var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMinX(),clipBounds.getMinY());var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMaxX(),clipBounds.getMaxY());savepoints=armyc2.c2sd.JavaLineArray.lineutility.BoundOneSegment(pt0,pt1,ul,lr);if(savepoints!==null&&savepoints.length>1){pt0=savepoints[0];pt1=savepoints[1];}
- midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);var dist0=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(midpt,pt0);var dist1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(midpt,pt1);if(dist0>dist1){armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pt0,pt4,pt5);}else{armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pt1,pt4,pt5);}
- pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);}else{midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLinePoints[0],pLinePoints[1],0);dist0=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(midpt,pt0);dist1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(midpt,pt1);if(dist0>dist1)
- armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pt0,pt4,pt5);else
- armyc2.c2sd.JavaLineArray.lineutility.LineRelativeToLine(pLinePoints[0],pLinePoints[1],pt1,pt4,pt5);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);}
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[0],pt0,-10,0);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[3],pt1,-10,0);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[0],pt0,10,0);pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[3],pt1,10,0);dWidth=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);pointCounter=4;n=1;pLinePoints[pointCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[pointCounter].style=0;pointCounter++;if((drawJaggies).booleanValue())
- while(dExtendLength<dWidth-10){dExtendLength=n*5;pLinePoints[pointCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt2,pt3,dExtendLength-dWidth,0);pointCounter++;n++;dExtendLength=n*5;pLinePoints[pointCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt4,pt5,dExtendLength-dWidth,0);pointCounter++;n++;}
- pLinePoints[pointCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[pointCounter].style=5;pointCounter++;acCounter=pointCounter;break;case 23131100:acCounter=armyc2.c2sd.JavaLineArray.lineutility.GetDitchSpikeDouble(pLinePoints,vblSaveCounter,0,lineType);break;case 23131200:pLinePoints[0].style=9;acCounter=armyc2.c2sd.JavaLineArray.lineutility.GetDitchSpikeDouble(pLinePoints,vblSaveCounter,0,lineType);pLinePoints[vblCounter-1].style=10;break;case 23132000:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);pLinePoints[0].style=9;acCounter=armyc2.c2sd.JavaLineArray.lineutility.GetDitchSpikeDouble(pLinePoints,vblSaveCounter,0,lineType);break;case 22522210:if(dMBR/30>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=30*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/30<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=30*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR<500)
- dMBR=500;if(dMBR>750)
- dMBR=500;d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);if(d<dMBR/40)
- pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[0],pLinePoints[1],dMBR/40+1);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[0],pLinePoints[1],dMBR/40);armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-12]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-11]);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dMBR/40);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt1,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[vblCounter-10+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt2,Math.floor((dMBR/13.33)),Math.floor((dMBR/13.33)),pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[vblCounter-7+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- pLinePoints[vblCounter-4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-10]);pLinePoints[vblCounter-4].style=0;pLinePoints[vblCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-7]);pLinePoints[vblCounter-3].style=5;pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-8]);pLinePoints[vblCounter-2].style=0;pLinePoints[vblCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-5]);pLinePoints[vblCounter-1].style=5;acCounter=vblCounter;break;case 23226000:pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[vblCounter-8],pLinePoints[vblCounter-7],dMBR/2);pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-7]);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],dMBR/2);if(dMBR/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR>250)
- dMBR=250;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt2,pt3,Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-6+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt1,pt0,Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-3+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- pLinePoints[vblSaveCounter-1].style=5;acCounter=vblCounter;break;case 23227000:pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[vblCounter-8],pLinePoints[vblCounter-7],dMBR/2);pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-7]);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],dMBR/2);if(dMBR/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR>200)
- dMBR=200;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt2,pt3,Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/5),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-6+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt1,pt0,Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/5),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-3+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- pLinePoints[vblSaveCounter-1].style=5;acCounter=vblCounter;break;case 22522100:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);for(k=vblSaveCounter-1;k>0;k--){d+=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[k],pLinePoints[k-1]);if(d>60)
- break;}
- if(d>60){middleSegment=k;pt2=pLinePoints[middleSegment];if(middleSegment>=1)
- pt3=pLinePoints[middleSegment-1];}else{if(vblSaveCounter<=3)
- middleSegment=1;else
- middleSegment=2;pt2=pLinePoints[middleSegment];if(middleSegment>=1)
- pt3=pLinePoints[middleSegment-1];}
- pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);if(dMBR/20>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/20<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR<150)
- dMBR=150;if(dMBR>250)
- dMBR=250;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-11],pLinePoints[vblCounter-10],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[vblCounter-9+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- pLinePoints[vblCounter-6].x=(pLinePoints[vblCounter-11].x+pLinePoints[vblCounter-10].x)/2;pLinePoints[vblCounter-6].y=(pLinePoints[vblCounter-11].y+pLinePoints[vblCounter-10].y)/2;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-6]);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-11],pt0,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,9);if(middleSegment>=1){pt0=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt2,pt3,0);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt3,pt0,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,9);}
- for(j=0;j<3;j++){pLinePoints[vblCounter-6+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-10],pt0,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,9);if(middleSegment>=1){pt0=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt2,pt3,0);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt2,pt0,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,9);}
- for(j=0;j<3;j++){pLinePoints[vblCounter-3+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- var airPts=new java.util.ArrayList();pLinePoints[middleSegment-1].style=5;if(vblSaveCounter===2)
- pLinePoints[1].style=5;for(j=0;j<vblCounter;j++)
- airPts.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]));midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pLinePoints[middleSegment-1],pLinePoints[middleSegment],0);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midpt,pLinePoints[middleSegment],dMBR/20,0);airPts.add(pt0);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[middleSegment]);pt1.style=5;airPts.add(pt1);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midpt,pLinePoints[middleSegment-1],dMBR/20,0);airPts.add(pt0);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[middleSegment-1]);pt1.style=5;airPts.add(pt1);vblCounter=airPts.size();pLinePoints=new Array(airPts.size());for(j=0;j<airPts.size();j++)
- pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(airPts.get(j));acCounter=vblCounter;armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,vblCounter,points);break;case 22422000:pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pts2=new Array(3);pts2[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pts2[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pts2[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);armyc2.c2sd.JavaLineArray.lineutility.GetPixelsMin(pts2,3,offsetX,offsetY);if(offsetX.value[0]<0){offsetX.value[0]=offsetX.value[0]-100;}else{offsetX.value[0]=0;}
- pLinePoints[2].style=5;if(dMBR/20>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR>250)
- dMBR=250;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,-dMBR/10);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical!==0&&m.value[0]!==0){b=pt2.y+(1/m.value[0])*pt2.x;b1=(-1/m.value[0])*offsetX.value[0]+b;ptYIntercept.x=offsetX.value[0];ptYIntercept.y=b1;pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,pt2,-2);pLinePoints[3].style=0;pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,pt2,2);pLinePoints[4].style=0;}
- if(bolVertical!==0&&m.value[0]===0){pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[3].y=pt2.y-2;pLinePoints[3].style=0;pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[4].y=pt2.y+2;pLinePoints[4].style=0;}
- if(bolVertical===0){pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[3].x=pt2.x-2;pLinePoints[3].style=0;pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[4].x=pt2.x+2;pLinePoints[4].style=0;}
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt1,pt0,-dMBR/10);if(bolVertical!==0&&m.value[0]!==0){b=pt2.y+(1/m.value[0])*pt2.x;b1=(-1/m.value[0])*offsetX.value[0]+b;ptYIntercept.x=offsetX.value[0];ptYIntercept.y=b1;pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,pt2,2);pLinePoints[5].style=0;pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,pt2,-2);}
- if(bolVertical!==0&&m.value[0]===0){pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[5].y=pt2.y+2;pLinePoints[5].style=0;pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[6].y=pt2.y-2;}
- if(bolVertical===0){pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[5].x=pt2.x+2;pLinePoints[5].style=0;pLinePoints[6]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[6].x=pt2.x-2;}
- pLinePoints[6].style=0;pLinePoints[7]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[3]);pLinePoints[7].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[1],pLinePoints[0],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[8+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[1],pLinePoints[2],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(j=0;j<3;j++){pLinePoints[11+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[j]);pLinePoints[11+j].style=0;}
- acCounter=14;break;case 22522220:armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);if(dMBR/20>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/20<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=20*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(client.startsWith("cpof")){if(dMBR<250)
- dMBR=250;}else{if(dMBR<150)
- dMBR=150;}
- if(dMBR>500)
- dMBR=500;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-5],pLinePoints[vblCounter-4],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-k-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- acCounter=vblCounter;break;case 23120000:pts2=new Array(2);pts2[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pts2[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);armyc2.c2sd.JavaLineArray.lineutility.GetPixelsMin(pts2,2,offsetX,offsetY);if(offsetX.value[0]<=0){offsetX.value[0]=offsetX.value[0]-100;}else{offsetX.value[0]=0;}
- if(dMBR>300)
- dMBR=300;pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],-dMBR/10);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);midpt.x=(pt0.x+pLinePoints[0].x)/2;midpt.y=(pt0.y+pLinePoints[0].y)/2;pLinePoints[vblCounter-3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[vblCounter-4].style=5;pLinePoints[vblCounter-3].style=0;if(bolVertical!==0&&m.value[0]!==0){b=midpt.y+(1/m.value[0])*midpt.x;b1=(-1/m.value[0])*offsetX.value[0]+b;ptYIntercept.x=offsetX.value[0];ptYIntercept.y=b1;pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midpt,dMBR/20);if(pLinePoints[vblCounter-2].y>=midpt.y){pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midpt,-dMBR/20);}}
- if(bolVertical!==0&&m.value[0]===0){pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);pLinePoints[vblCounter-2].y=midpt.y-dMBR/20;}
- if(bolVertical===0){pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);pLinePoints[vblCounter-2].x=midpt.x-dMBR/20;}
- pLinePoints[vblCounter-2].style=0;pLinePoints[vblCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,vblCounter,points);acCounter=vblCounter;break;case 23157000:pts2=new Array(2);if(Math.abs(pt0.y-pt1.y)<1){pt1.y=pt0.y+1;}
- pts2[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pts2[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pts=new Array(26);dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1)/2;midpt.x=(pt1.x+pt0.x)/2;midpt.y=(pt1.y+pt0.y)/2;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical!==0&&m.value[0]!==0){b=midpt.y+(1/m.value[0])*midpt.x;ptYIntercept.x=0;ptYIntercept.y=b;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midpt,dRadius);if(pLinePoints[0].x<=pLinePoints[1].x){if(pt2.y>=midpt.y){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midpt,-dRadius);}}else{if(pt2.y<=midpt.y){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midpt,-dRadius);}}}
- if(bolVertical!==0&&m.value[0]===0){pt2=midpt;if(pLinePoints[0].x<=pLinePoints[1].x){pt2.y=midpt.y-dRadius;}else{pt2.y=midpt.y+dRadius;}}
- if(bolVertical===0){pt2=midpt;if(pLinePoints[0].y<=pLinePoints[1].y){pt2.x=midpt.x+dRadius;}else{pt2.x=midpt.x-dRadius;}}
- pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(midpt,pt2,100);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);armyc2.c2sd.JavaLineArray.lineutility.ArcArrayDouble(pts,0,dRadius,lineType);pLinePoints[0].style=1;pLinePoints[1].style=5;for(j=0;j<26;j++){pLinePoints[2+j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts[j]);pLinePoints[2+j].style=1;}
- acCounter=28;break;case 231100000:dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(pt0,pt1,pt2);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical!==0&&m.value[0]!==0){b=pt1.y+1/m.value[0]*pt1.x;b1=pt2.y-m.value[0]*pt2.x;calcPoint0=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b,m.value[0],b1,1,1,pt0.x,pt0.y);calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius/2);calcPoint2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius);b=calcPoint1.y+1/m.value[0]*calcPoint1.x;calcPoint3=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b,m.value[0],b1,1,1,pt0.x,pt0.y);b=calcPoint2.y+1/m.value[0]*calcPoint2.x;calcPoint4=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b,m.value[0],b1,1,1,pt0.x,pt0.y);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint1,calcPoint3,0);midpt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint2,calcPoint4,0);b=pt1.y+1/m.value[0]*pt1.x;calcPoint0=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b,m.value[0],b1,1,1,pt0.x,pt0.y);calcPoint3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(calcPoint0,calcPoint3);calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(calcPoint0,calcPoint3,-(d-dRadius));}
- if(bolVertical!==0&&m.value[0]===0){calcPoint0.x=pt1.x;calcPoint0.y=pt2.y;calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius/2);calcPoint2=pt2;calcPoint3.x=calcPoint0.x+dRadius/2;calcPoint3.y=calcPoint0.y;calcPoint4.x=pt1.x+dRadius;calcPoint4.y=pt2.y;midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint1,calcPoint3,0);midpt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint2,calcPoint4,0);calcPoint3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(calcPoint0,calcPoint3);calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(calcPoint0,calcPoint3,-(d-dRadius));}
- if(bolVertical===0){calcPoint0.x=pt2.x;calcPoint0.y=pt1.y;calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius/2);calcPoint2=pt2;calcPoint3.y=calcPoint0.y+dRadius/2;calcPoint3.x=calcPoint0.x;calcPoint4.y=pt1.y+dRadius;calcPoint4.x=pt2.x;midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint1,calcPoint3,0);midpt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(calcPoint2,calcPoint4,0);calcPoint3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,dRadius);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(calcPoint0,calcPoint3);calcPoint1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(calcPoint0,calcPoint3,-(d-dRadius));}
- arcPts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(calcPoint1);arcPts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(calcPoint3);armyc2.c2sd.JavaLineArray.lineutility.ArcArrayDouble(arcPts,0,dRadius,lineType);pLinePoints[0].style=5;pLinePoints[1].style=5;for(k=0;k<26;k++){pLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(arcPts[k]);}
- for(k=25;k<vblCounter;k++){pLinePoints[k].style=5;}
- pLinePoints[26]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt0);midpt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt0,-dRadius/2-7,0);pLinePoints[27]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);pLinePoints[27].style=0;midpt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt0,-dRadius/2+7,0);pLinePoints[28]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(midpt);pLinePoints[29]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[29].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt1,pt0,15,15,pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[30+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- for(k=0;k<3;k++){pLinePoints[30+k].style=5;}
- midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,calcPoint0);pLinePoints[33]=pt2;pt3=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(pt0,pt1,pt0,pt2);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt3,pt2);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,d);d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt2,pt4);pLinePoints[34]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt2,pt4,d);acCounter=35;break;case 211200000:d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);if(client.startsWith("cpof"))
- d2=20;else
- d2=30;d2=30;if(d<d2){lineType=22522220;armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2Double(22522220,pLinePoints,5,2,shapes,clipBounds,rev);break;}
- armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);if(dMBR/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(dMBR>150)
- dMBR=150;pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],-2*dMBR/10);for(k=0;k<vblCounter-14;k++){pLinePoints[k].style=18;}
- pLinePoints[vblCounter-15].style=5;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],5*dMBR/10);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pLinePoints[0],Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-14+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],dMBR/10);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt3,Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,0);pLinePoints[vblCounter-12].style=0;pLinePoints[vblCounter-11]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[2]);pLinePoints[vblCounter-11].style=0;pLinePoints[vblCounter-10]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[0]);pLinePoints[vblCounter-10].style=0;pLinePoints[vblCounter-9]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-14]);pLinePoints[vblCounter-9].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-16],pLinePoints[vblCounter-15],Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-8+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- pLinePoints[vblCounter-6].style=0;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[vblCounter-16],pLinePoints[vblCounter-15],-0.75*dMBR/10);pLinePoints[1]=pt3;pLinePoints[1].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-16],pt3,Math.floor((dMBR/10)),Math.floor((dMBR/10)),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-5+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[2-k]);}
- pLinePoints[vblCounter-5].style=0;pLinePoints[vblCounter-2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-8]);pLinePoints[vblCounter-2].style=5;pLinePoints[vblCounter-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-7]);acCounter=16;break;case 211210000:if(client.startsWith("cpof"))
- d2=25;else
- d2=25;var folspDist=0;folspDist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);if(folspDist<d2){lineType=22522220;armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2Double(lineType,pLinePoints,5,2,shapes,clipBounds,rev);break;}
- armyc2.c2sd.JavaLineArray.lineutility.ReversePointsDouble2(pLinePoints,vblSaveCounter);if(dMBR/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;}
- if(dMBR/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength){dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;}
- if(client.startsWith("cpof")){if(folspDist<25)
- dMBR=125;if(folspDist<75)
- dMBR=150;if(folspDist<100)
- dMBR=175;if(folspDist<125)
- dMBR=200;}
- else
- {dMBR*=1.5;}
- pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],-dMBR/8.75);pLinePoints[vblCounter-15].style=5;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],dMBR/4);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pLinePoints[0],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-14+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- pLinePoints[vblCounter-12].style=0;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[1],pLinePoints[0],dMBR/15);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pt0,pt3,Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,0);for(k=0;k<3;k++){pLinePoints[vblCounter-11+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[2-k]);pLinePoints[vblCounter-11+k].style=0;}
- pLinePoints[vblCounter-8]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[vblCounter-14]);pLinePoints[vblCounter-8].style=5;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-16],pLinePoints[vblCounter-15],Math.floor(Math.floor(dMBR)/20),Math.floor(Math.floor(dMBR)/20),pArrowPoints,9);for(k=0;k<3;k++){pLinePoints[vblCounter-7+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);}
- for(k=4;k>0;k--){pLinePoints[vblCounter-k].style=5;}
- acCounter=12;break;case 23223000:lLinestyle=9;if(dMBR/10>armyc2.c2sd.JavaLineArray.arraysupport.maxLength)
- dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.maxLength;if(dMBR/10<armyc2.c2sd.JavaLineArray.arraysupport.minLength)
- dMBR=10*armyc2.c2sd.JavaLineArray.arraysupport.minLength;if(dMBR>250)
- dMBR=250;armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[vblCounter-8],pLinePoints[vblCounter-7],Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,lLinestyle);for(k=0;k<3;k++)
- pLinePoints[vblCounter-6+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);armyc2.c2sd.JavaLineArray.lineutility.GetArrowHead4Double(pLinePoints[1],pLinePoints[0],Math.floor(Math.floor(dMBR)/10),Math.floor(Math.floor(dMBR)/10),pArrowPoints,lLinestyle);for(k=0;k<3;k++)
- pLinePoints[vblCounter-3+k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArrowPoints[k]);acCounter=8;break;case 26220000:pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt1,pt0,-10,0);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pt0,pt1,-10,0);pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt3,10,0);pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt3,-10,0);pt7=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt4,10,0);pt8=armyc2.c2sd.JavaLineArray.lineutility.ExtendTrueLinePerpDouble(pt0,pt1,pt4,-10,0);if(pt5.y<pt6.y){pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);}else{pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt6);}
- if(pt7.y>pt8.y){pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt7);}else{pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt8);}
- pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);acCounter=4;break;case 23330000:acCounter=armyc2.c2sd.JavaLineArray.arraysupport.GetFORTLPointsDouble(pLinePoints,lineType,vblSaveCounter);break;case 21400000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMCanalizeDouble(pLinePoints,lineType);break;case 21200000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMBreachDouble(pLinePoints,lineType);break;case 212210000:case 212220000:case 212230000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMCoverDouble(pLinePoints,lineType);break;case 212210001:case 212220001:case 212230001:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMCoverDoubleRevC(pLinePoints,lineType,vblSaveCounter);break;case 22139000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMCoverDouble(pLinePoints,lineType);break;case 211000000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMDisruptDouble(pLinePoints,lineType);break;case 21600000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMContainDouble(pLinePoints,lineType);break;case 211700000:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMPenetrateDouble(pLinePoints,lineType);acCounter=7;break;case 23171000:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMBlockDouble2(pLinePoints,lineType);acCounter=4;break;case 21100000:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMBlockDouble2(pLinePoints,lineType);acCounter=4;break;case 24250000:case 24211000:case 24260000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMLinearTargetDouble(pLinePoints,lineType,vblCounter);break;case 23163000:case 23221000:case 23222000:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMGapDouble(pLinePoints,lineType);acCounter=12;break;case 23174000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMMinefieldDisruptDouble(pLinePoints,lineType);break;case 22534000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMSupportByFireDouble(pLinePoints,lineType);break;case 22533000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMATKBYFIREDouble(pLinePoints,lineType);break;case 23213000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMByImpDouble(pLinePoints,lineType);break;case 21500000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMClearDouble(pLinePoints,lineType);break;case 23212000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMByDifDouble(pLinePoints,lineType,clipBounds);break;case 212300000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMSeizeDouble(pLinePoints,lineType,0);break;case 212300001:var radius=0;if(rev===1){radius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[0],pLinePoints[1]);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[3]);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[2]);}
- acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMSeizeDouble(pLinePoints,lineType,radius);break;case 211100000:case 23172000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMFixDouble(pLinePoints,lineType,clipBounds);break;case 211800000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMRIPDouble(pLinePoints,lineType);break;case 21800000:case 212400000:case 212410000:case 212000000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDelayGraphicEtcDouble(pLinePoints);break;case 23211000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMEasyDouble(pLinePoints,lineType);break;case 22310000:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMDeceiveDouble(pLinePoints);acCounter=4;break;case 21300000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMBypassDouble(pLinePoints,lineType);break;case 24326100:armyc2.c2sd.JavaLineArray.DISMSupport.GetDISMPAADouble(pLinePoints,lineType);acCounter=5;break;case 22611000:acCounter=armyc2.c2sd.JavaLineArray.DISMSupport.AmbushPointsDouble(pLinePoints);break;case 22122000:acCounter=armyc2.c2sd.JavaLineArray.flot.GetFlotDouble(pLinePoints,vblSaveCounter);break;default:acCounter=vblSaveCounter;break;}
- switch(lineType){case 22121000:armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);return points;case 21600000:case 21100000:case 212230000:case 212210000:case 212220000:case 212230001:case 212210001:case 212220001:case 24326100:case 211210000:case 211200000:case 21200000:case 21300000:case 21400000:case 21500000:case 211000000:case 211100000:case 211400000:case 211600000:case 211700000:case 211900000:case 212100000:case 212300000:case 212300001:case 14000000:case 15000003:armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);break;default:if(shapes===null){armyc2.c2sd.JavaLineArray.arraysupport.FillPoints(pLinePoints,acCounter,points);return points;}
- break;}
- if(shapes===null)
- return points;var shape=null;var gp=null;var redShape=null;var blueShape=null;var paleBlueShape=null;var whiteShape=null;var redFillShape=null;var blueFillShape=null;var blackShape=null;var blueStroke;var paleBlueStroke;var blueArea=null;var paleBlueArea=null;var whiteArea=null;var beginLine=true;var poly=null;switch(lineType){case 15000001:case 15000003:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(pLinePoints[0]);for(j=0;j<vblSaveCounter;j++)
- shape.lineTo(pLinePoints[j]);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pOriginalLinePoints[0]);for(j=1;j<vblSaveCounter;j++)
- shape.lineTo(pOriginalLinePoints[j]);shapes.add(shape);break;case 22522210:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[0]);for(j=0;j<acCounter-10;j++){shape.lineTo(pLinePoints[j]);}
- shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[acCounter-10]);for(j=9;j>0;j--){if(pLinePoints[acCounter-j-1].style===5){shape.moveTo(pLinePoints[acCounter-j]);}else{shape.lineTo(pLinePoints[acCounter-j]);}}
- shapes.add(shape);break;case 32214000:whiteShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);whiteShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.WHITE);var whiteStroke=new armyc2.c2sd.graphics2d.BasicStroke(28);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);blueShape.setFillColor(new armyc2.c2sd.renderer.utilities.Color(30,144,255));paleBlueStroke=new armyc2.c2sd.graphics2d.BasicStroke(14);paleBlueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);paleBlueShape.setFillColor(new armyc2.c2sd.renderer.utilities.Color(153,204,255));poly=new armyc2.c2sd.graphics2d.Polygon();for(k=0;k<vblSaveCounter;k++){poly.addPoint(Math.floor(pLinePoints[k].x),Math.floor(pLinePoints[k].y));if(k===0)
- whiteShape.moveTo(pLinePoints[k]);else
- whiteShape.lineTo(pLinePoints[k]);}
- var pts=poly.getPathIterator(null).getPoints();if(pts.size()<3)
- break;blueArea=new armyc2.c2sd.graphics2d.Area(poly);blueShape.setShape(blueArea);whiteArea=new armyc2.c2sd.graphics2d.Area(whiteStroke.createStrokedShape(poly));whiteShape.setShape(armyc2.c2sd.JavaLineArray.lineutility.createStrokedShape(whiteArea));paleBlueArea=new armyc2.c2sd.graphics2d.Area(paleBlueStroke.createStrokedShape(poly));paleBlueShape.setShape(armyc2.c2sd.JavaLineArray.lineutility.createStrokedShape(paleBlueArea));shapes.add(blueShape);shapes.add(paleBlueShape);shapes.add(whiteShape);break;case 32550000:redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.set_Style(1);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.set_Style(0);redShape.moveTo(pLinePoints[0]);for(k=1;k<vblSaveCounter;k++)
- redShape.lineTo(pLinePoints[k]);beginLine=true;for(k=vblSaveCounter;k<acCounter;k++){if(pLinePoints[k].style===0){if(beginLine){blueShape.moveTo(pLinePoints[k]);beginLine=false;}else
- blueShape.lineTo(pLinePoints[k]);}
- if(pLinePoints[k].style===5){blueShape.lineTo(pLinePoints[k]);beginLine=true;}}
- shapes.add(redShape);shapes.add(blueShape);break;case 31148000:redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.GREEN);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===19&&pLinePoints[k+1].style===5){redShape.moveTo(pLinePoints[k]);redShape.lineTo(pLinePoints[k+1]);}else if(pLinePoints[k].style===25&&pLinePoints[k+1].style===5){blueShape.moveTo(pLinePoints[k]);blueShape.lineTo(pLinePoints[k+1]);}}
- shapes.add(redShape);shapes.add(blueShape);break;case 31134300:redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===23){redFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);redFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.RED);redFillShape.moveTo(pLinePoints[k-9]);for(var l=k-8;l<=k;l++){redFillShape.lineTo(pLinePoints[l]);}
- shapes.add(redFillShape);}
- if(pLinePoints[k].style===24){blueFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);blueFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);blueFillShape.moveTo(pLinePoints[k-2]);blueFillShape.lineTo(pLinePoints[k-1]);blueFillShape.lineTo(pLinePoints[k]);shapes.add(blueFillShape);redShape.moveTo(pLinePoints[k-2]);redShape.lineTo(pLinePoints[k-1]);redShape.lineTo(pLinePoints[k]);}}
- for(k=0;k<vblSaveCounter;k++){if(k===0){d=50;redShape.moveTo(pOriginalLinePoints[0]);d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[0],pOriginalLinePoints[1]);if(d1<d)
- d=d1;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[0],pOriginalLinePoints[1],d);redShape.lineTo(pt0);}else if(k>0&&k<vblSaveCounter-1){d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[k],pOriginalLinePoints[k-1]);if(d1<d)
- d=d1;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[k],pOriginalLinePoints[k-1],d);pt1=pOriginalLinePoints[k];d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[k],pOriginalLinePoints[k+1]);if(d1<d)
- d=d1;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[k],pOriginalLinePoints[k+1],d);redShape.moveTo(pt0);redShape.lineTo(pt1);redShape.lineTo(pt2);}else{d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[vblSaveCounter-1],pOriginalLinePoints[vblSaveCounter-2]);if(d1<d)
- d=d1;redShape.moveTo(pOriginalLinePoints[vblSaveCounter-1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[vblSaveCounter-1],pOriginalLinePoints[vblSaveCounter-2],d);redShape.lineTo(pt0);}}
- for(k=0;k<vblCounter-1;k++){if(pLinePoints[k].style===19&&pLinePoints[k+1].style===5){redShape.moveTo(pLinePoints[k]);redShape.lineTo(pLinePoints[k+1]);}else if(pLinePoints[k].style===25&&pLinePoints[k+1].style===5){blueShape.moveTo(pLinePoints[k]);blueShape.lineTo(pLinePoints[k+1]);}}
- shapes.add(redShape);shapes.add(blueShape);break;case 31134200:redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===23){redFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);redFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.RED);redFillShape.moveTo(pLinePoints[k-9]);for(l=k-8;l<=k;l++){redFillShape.lineTo(pLinePoints[l]);}
- shapes.add(redFillShape);}
- if(pLinePoints[k].style===24){blueFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);blueFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);blueFillShape.moveTo(pLinePoints[k-2]);blueFillShape.lineTo(pLinePoints[k-1]);blueFillShape.lineTo(pLinePoints[k]);shapes.add(blueFillShape);redShape.moveTo(pLinePoints[k-2]);redShape.lineTo(pLinePoints[k-1]);redShape.lineTo(pLinePoints[k]);}}
- for(k=0;k<vblSaveCounter;k++){if(k===0){d=50;redShape.moveTo(pOriginalLinePoints[0]);d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[0],pOriginalLinePoints[1]);if(d1<d)
- d=d1;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[0],pOriginalLinePoints[1],d);redShape.lineTo(pt0);}else if(k>0&&k<vblSaveCounter-1){d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[k],pOriginalLinePoints[k-1]);if(d1<d)
- d=d1;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[k],pOriginalLinePoints[k-1],d);pt1=pOriginalLinePoints[k];d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[k],pOriginalLinePoints[k+1]);if(d1<d)
- d=d1;pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[k],pOriginalLinePoints[k+1],d);redShape.moveTo(pt0);redShape.lineTo(pt1);redShape.lineTo(pt2);}else{d=50;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[vblSaveCounter-1],pOriginalLinePoints[vblSaveCounter-2]);if(d1<d)
- d=d1;redShape.moveTo(pOriginalLinePoints[vblSaveCounter-1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pOriginalLinePoints[vblSaveCounter-1],pOriginalLinePoints[vblSaveCounter-2],d);redShape.lineTo(pt0);}}
- shapes.add(redShape);for(k=0;k<acCounter;k++){if(pLinePoints[k].style===22){var CirclePoints=new Array(8);redShape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],3,8,CirclePoints,9);redShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.RED);if(redShape!==null&&redShape.getShape()!==null)
- shapes.add(redShape);}
- if(pLinePoints[k].style===20){CirclePoints=new Array(8);blueShape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],3,8,CirclePoints,9);blueShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);if(blueShape!==null&&blueShape.getShape()!==null)
- shapes.add(blueShape);}}
- break;case 31134100:redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);beginLine=true;for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===19&&pLinePoints[k+1].style===5){redShape.moveTo(pLinePoints[k]);redShape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===19&&pLinePoints[k+1].style===19){redShape.moveTo(pLinePoints[k]);redShape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===25&&pLinePoints[k+1].style===5){blueShape.moveTo(pLinePoints[k]);blueShape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===25&&pLinePoints[k+1].style===25){blueShape.moveTo(pLinePoints[k]);blueShape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===0&&pLinePoints[k+1].style===5){redShape.moveTo(pLinePoints[k]);redShape.lineTo(pLinePoints[k+1]);}}
- shapes.add(redShape);shapes.add(blueShape);break;case 31134000:blackShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blackShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);redShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);redShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);blueShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);blueShape.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===23){redFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);redFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.RED);redFillShape.moveTo(pLinePoints[k-9]);blackShape.moveTo(pLinePoints[k-9]);for(l=k-8;l<=k;l++){redFillShape.lineTo(pLinePoints[l]);blackShape.lineTo(pLinePoints[l]);}
- redFillShape.lineTo(pLinePoints[k-9]);shapes.add(redFillShape);}
- if(pLinePoints[k].style===24){blueFillShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);blueFillShape.setFillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);blueFillShape.moveTo(pLinePoints[k-2]);blueFillShape.lineTo(pLinePoints[k-1]);blueFillShape.lineTo(pLinePoints[k]);blueFillShape.lineTo(pLinePoints[k-2]);shapes.add(blueFillShape);blackShape.moveTo(pLinePoints[k-2]);blackShape.lineTo(pLinePoints[k-1]);blackShape.lineTo(pLinePoints[k]);}}
- blackShape.moveTo(pOriginalLinePoints[0]);for(k=1;k<vblSaveCounter;k++)
- blackShape.lineTo(pOriginalLinePoints[k]);shapes.add(redShape);shapes.add(blueShape);shapes.add(blackShape);break;case 31132200:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===0&&pLinePoints[k+1].style===5){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}}
- shapes.add(shape);for(k=0;k<acCounter;k++){if(pLinePoints[k].style===20){CirclePoints=new Array(8);shape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],3,8,CirclePoints,9);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- break;case 211200000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(1);shape.moveTo(pLinePoints[0]);shape.lineTo(pLinePoints[1]);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(0);for(j=2;j<vblCounter;j++){if(pLinePoints[j-1].style!==5)
- shape.lineTo(pLinePoints[j]);else
- shape.moveTo(pLinePoints[j]);}
- shapes.add(shape);break;case 31131200:for(k=0;k<acCounter;k++){if(pLinePoints[k].style===20){CirclePoints=new Array(8);shape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],3,8,CirclePoints,9);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);continue;}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===0&&pLinePoints[k+1].style===0){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===0&&pLinePoints[k+1].style===9){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}
- if(pLinePoints[k].style===0&&pLinePoints[k+1].style===5){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[k],pLinePoints[k+1]);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[k],pLinePoints[k+1],d-5);shape.moveTo(pLinePoints[k]);shape.lineTo(pt0);}
- if(pLinePoints[k].style===0&&k===acCounter-2){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}}
- shapes.add(shape);break;case 32680000:for(k=0;k<acCounter;k++){if(pLinePoints[k].style===20){CirclePoints=new Array(8);shape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],5,8,CirclePoints,9);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);for(k=0;k<acCounter-1;k++){if(pLinePoints[k].style===0&&pLinePoints[k+1].style===5){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}}
- shapes.add(shape);break;case 23200001:for(k=0;k<acCounter;k++){if(pLinePoints[k].style===20){CirclePoints=new Array(8);shape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],5,8,CirclePoints,9);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);for(k=0;k<acCounter;k++){if(pLinePoints[k].style===1){if(k===0){shape.moveTo(pLinePoints[k]);}else
- shape.lineTo(pLinePoints[k]);}}
- shapes.add(shape);break;case 23132000:for(k=0;k<acCounter;k++){if(pLinePoints[k].style===20){CirclePoints=new Array(8);shape=armyc2.c2sd.JavaLineArray.lineutility.CalcCircleShape(pLinePoints[k],4,8,CirclePoints,9);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);continue;}
- if(k<acCounter-2){if(pLinePoints[k].style!==0&&pLinePoints[k+1].style===0){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k]);}else if(pLinePoints[k].style===0&&pLinePoints[k+1].style===0){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);}else if(pLinePoints[k].style===0&&pLinePoints[k+1].style===10){shape.moveTo(pLinePoints[k]);shape.lineTo(pLinePoints[k+1]);shapes.add(shape);}}
- if(k<acCounter-2){if(pLinePoints[k].style===5&&pLinePoints[k+1].style===0){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);}else if(pLinePoints[k].style===0&&pLinePoints[k+1].style===0){shape.lineTo(pLinePoints[k+1]);}else if(pLinePoints[k].style===0&&pLinePoints[k+1].style===5){shape.lineTo(pLinePoints[k+1]);shapes.add(shape);}}}
- break;case 22330000:for(k=0;k<vblCounter;k++){if(pLinePoints[k].style===18)
- continue;if(shape===null)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);if(beginLine){if(k>0)
- if(pLinePoints[k].style===5&&pLinePoints[k-1].style===5)
- continue;if(k===0)
- shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5){beginLine=true;}}
- if(k===vblCounter-1){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- for(k=0;k<vblCounter;k++){if(pLinePoints[k].style===18&&pLinePoints[k-1].style===5){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(1);shape.moveTo(pLinePoints[k]);}else if(pLinePoints[k].style===18&&pLinePoints[k-1].style===18){shape.lineTo(pLinePoints[k]);}else if(pLinePoints[k].style===5&&pLinePoints[k-1].style===18){shape.lineTo(pLinePoints[k]);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);break;}else
- continue;}
- break;case 23192000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[0].style);shape.moveTo(pLinePoints[0]);shape.lineTo(pLinePoints[1]);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[2].style);shape.moveTo(pLinePoints[2]);shape.lineTo(pLinePoints[3]);shapes.add(shape);break;case 2237000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);beginLine=true;for(k=0;k<acCounter-3;k++){if(shape===null)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);if(beginLine){if(k===0)
- shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5||pLinePoints[k].style===10){beginLine=true;}}
- if(k===acCounter-4){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(1);shape.moveTo(pLinePoints[acCounter-1]);shape.lineTo(pLinePoints[acCounter-2]);shape.lineTo(pLinePoints[acCounter-3]);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);break;case 22340000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[0].style);shape.moveTo(pLinePoints[0]);for(k=1;k<vblCounter-3;k++){shape.lineTo(pLinePoints[k]);}
- if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[vblCounter-3]);shape.set_Style(1);shape.lineTo(pLinePoints[vblCounter-2]);shape.lineTo(pLinePoints[vblCounter-1]);if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);break;case 23225000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[0].style);shape.moveTo(pLinePoints[0]);shape.lineTo(pLinePoints[1]);shape.moveTo(pLinePoints[2]);shape.lineTo(pLinePoints[3]);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(pLinePoints[4].style);shape.moveTo(pLinePoints[4]);for(k=5;k<acCounter;k++){if(pLinePoints[k-1].style!==5)
- shape.lineTo(pLinePoints[k]);}
- if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);break;case 22350000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(points.get(0).style);shape.moveTo(points.get(0));for(k=1;k<vblCounter-3;k++){shape.lineTo(points.get(k));}
- if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(points.get(vblCounter-3));shape.set_Style(1);shape.lineTo(points.get(vblCounter-2));shape.lineTo(points.get(vblCounter-1));if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);beginLine=true;for(k=vblCounter;k<points.size();k++){if(beginLine){if(k===0)
- shape.set_Style(points.get(k).style);if(k>0)
- if(points.get(k).style===5&&points.get(k-1).style===5)
- shape.lineTo(points.get(k));shape.moveTo(points.get(k));beginLine=false;}else{shape.lineTo(points.get(k));if(points.get(k).style===5||points.get(k).style===10){beginLine=true;}}
- if(k===points.size()-1){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- break;case 221311000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[0]);for(k=1;k<acCounter-5;k++)
- shape.lineTo(pLinePoints[k]);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[acCounter-4]);shape.lineTo(pLinePoints[acCounter-3]);shape.moveTo(pLinePoints[acCounter-2]);shape.lineTo(pLinePoints[acCounter-1]);shapes.add(shape);break;case-1:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[0]);for(k=1;k<pLinePoints.length;k++)
- shape.lineTo(pLinePoints[k]);shapes.add(shape);break;default:for(k=0;k<acCounter;k++){if(shape===null)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);if(beginLine){if(k===0)
- {shape.set_Style(pLinePoints[k].style);}
- if(k>0){if(pLinePoints[k].style===5&&pLinePoints[k-1].style===5&&k<acCounter-1)
- continue;else if(pLinePoints[k].style===5&&pLinePoints[k-1].style===10)
- continue;}
- if(k===0&&pLinePoints.length>1)
- if(pLinePoints[k].style===5&&pLinePoints[k+1].style===5)
- continue;shape.moveTo(pLinePoints[k]);beginLine=false;}else{shape.lineTo(pLinePoints[k]);if(pLinePoints[k].style===5||pLinePoints[k].style===10){beginLine=true;}}
- if(k===acCounter-1){if(shape!==null&&shape.getShape()!==null)
- shapes.add(shape);}}
- break;}
- switch(lineType){case 23111001:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.moveTo(pUpperLinePoints[0]);for(j=1;j<pUpperLinePoints.length;j++){shape.lineTo(pUpperLinePoints[j]);}
- shape.lineTo(pLowerLinePoints[pLowerLinePoints.length-1]);for(j=pLowerLinePoints.length-1;j>=0;j--){shape.lineTo(pLowerLinePoints[j]);}
- shape.lineTo(pUpperLinePoints[0]);shapes.add(0,shape);break;case 22522100:var outLineCounter=0;var ptOutline=new Array(4);for(k=0;k<acCounter;k++){if(pLinePoints[k].style===10)
- {shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(pLinePoints[k-2]);shape.lineTo(pLinePoints[k]);if(shape!==null&&shape.getShape()!==null)
- {shapes.add(1,shape);}
- ptOutline[outLineCounter++]=pLinePoints[k-2];ptOutline[outLineCounter++]=pLinePoints[k];}}
- break;case 31133200:case 31133000:case 31132000:case 31132200:case 31132300:case 31131000:case 31131300:case 31131200:case 22139000:case 23223000:case 23211000:case 23212000:case 23213000:case 211210000:case 23131200:case 23132000:case 23172000:case 23173000:case 23174000:for(k=0;k<acCounter;k++){if(k===0){if(pLinePoints[k].style===9){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);}}else{if(pLinePoints[k].style===9&&pLinePoints[k-1].style!==9){shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.set_Style(pLinePoints[k].style);shape.moveTo(pLinePoints[k]);}
- if(pLinePoints[k].style===9&&pLinePoints[k-1].style===9){shape.lineTo(pLinePoints[k]);}}
- if(pLinePoints[k].style===10){shape.lineTo(pLinePoints[k]);if(lineType===22139000)
- shape.lineTo(pLinePoints[k-2]);if(shape!==null&&shape.getShape()!==null){shapes.add(0,shape);}}}
- break;default:break;}
- pArrowPoints=null;arcPts=null;circlePoints=null;pOriginalLinePoints=null;pts2=null;pts=null;segments=null;pUpperLinePoints=null;pLowerLinePoints=null;pUpperLowerLinePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.arraysupport._className,"GetLineArray2Double",new armyc2.c2sd.renderer.utilities.RendererException("GetLineArray2Dboule "+Integer.toString(lineType),exc));}else{throw exc;}}
- return points;},maxLength:100,minLength:5,dACP:0,_classname:"arraysupport"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.countsupport={setMinLength:function(value){this.minLength=value;},GetCountersDouble:function(vbiDrawThis,vblCounter,pLinePoints,clipBounds,rev){var count=0;try{var j=0;var vblSaveCounter=vblCounter;var pSquarePoints=new Array(4);var pUpperLinePoints=null;var pLowerLinePoints=null;var segments=null;var pNewLinePoints=null;var dRadius=0;var pointsCorner=new Array(2);pUpperLinePoints=new Array(vblCounter);pLowerLinePoints=new Array(vblCounter);for(j=0;j<vblCounter;j++){pUpperLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pLowerLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSquarePoints);switch(vbiDrawThis){case 13000000:count=37;break;case 12000000:count=4;break;case 23200000:count=vblCounter*15;break;case 23200001:count=vblCounter*2;break;case 32134000:vblCounter+=3;count=vblCounter;break;case 322510000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetReefCount(pLinePoints,vblSaveCounter);count=vblCounter;break;case 32530000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetRestrictedAreaCount(pLinePoints,vblSaveCounter);count=vblCounter;break;case 32550000:vblCounter+=30;count=vblCounter;break;case 32680000:count=armyc2.c2sd.JavaLineArray.countsupport.GetPipeCount(pLinePoints,vblSaveCounter);break;case 32231500:case 32231400:count=armyc2.c2sd.JavaLineArray.flot.GetAnchorageCountDouble(pLinePoints,vblCounter);break;case 32153000:var xCount=armyc2.c2sd.JavaLineArray.countsupport.GetXPointsCount(pLinePoints,vblCounter);var lvoCount=armyc2.c2sd.JavaLineArray.countsupport.GetLVOCount(pLinePoints,vblCounter);count=xCount+lvoCount;break;case 32151000:count=armyc2.c2sd.JavaLineArray.countsupport.GetLVOCount(pLinePoints,vblCounter);break;case 31740000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetIcingCount(pLinePoints,vblCounter);count=vblCounter;break;case 22122000:case 31720000:case 32152000:vblSaveCounter=vblCounter;vblCounter=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pLinePoints,vblCounter);count=vblCounter;break;case 31148000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetITDQty(pLinePoints,vblCounter)+vblCounter;count=vblCounter;break;case 31147000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetConverganceQty(pLinePoints,vblCounter)+vblCounter;count=vblCounter;break;case 31142000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,vbiDrawThis,vblSaveCounter);count=vblCounter;break;case 31141000:case 31144000:case 31145000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetSquallQty(pLinePoints,6,30,vblSaveCounter);count=vblCounter;break;case 31143000:vblCounter=armyc2.c2sd.JavaLineArray.countsupport.GetSquallQty(pLinePoints,6,30,vblSaveCounter);count=vblCounter;break;case 31134100:case 31134200:case 31134300:case 31134000:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetSFCountDouble(pLinePoints,vblCounter);count=vblCounter;break;case 31133200:vblSaveCounter=vblCounter;vblCounter=armyc2.c2sd.JavaLineArray.flot.GetOFYCountDouble(pLinePoints,vblCounter,vbiDrawThis);count=vblCounter;break;case 31131100:case 31131000:case 31131200:case 31131300:count=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,vbiDrawThis,vblSaveCounter);count+=vblSaveCounter;break;case 211200000:case 211210000:count=16;break;case 23194000:case 23223000:count=8;break;case 26220000:case 22524000:case 23191000:case 23192000:case 23193000:case 23224000:case 23340000:case 22310000:count=4;break;case 231100000:count=35;break;case 22611000:count=53;break;case 23157000:count=28;break;case 2237000:count=vblCounter+3;break;case 21600000:count=40;break;case 23213000:count=18;break;case 22534000:count=16;break;case 21100000:case 23171000:count=4;break;case 24326100:count=5;break;case 211700000:count=7;break;case 23221000:case 23222000:case 23163000:case 21300000:case 23211000:case 21200000:case 21400000:count=12;break;case 23174000:count=22;break;case 212400000:case 212410000:case 21800000:case 212000000:count=23;break;case 212300000:case 212300001:count=37;break;case 211800000:count=29;break;case 22522220:count=vblCounter+3;break;case 23120000:count=vblCounter+3;break;case 24260000:case 24250000:case 24211000:count=vblCounter+4;break;case 231113001:case 231113002:case 231113003:count=2*vblCounter;break;case 15000000:count=2*vblCounter;break;case 22139000:count=16;break;case 212230000:case 212210000:case 212220000:case 212230001:case 212210001:case 212220001:case 22422000:case 22533000:count=14;break;case 23227000:case 23226000:count=8;break;case 22522210:count=vblCounter+10;break;case 22522100:count=vblCounter+9;break;case 211000000:case 21500000:count=20;break;case 22224001:case 22222001:vblCounter=6*(vblSaveCounter-1);count=vblCounter+26*vblSaveCounter*2;break;case 22224000:case 22222000:if(rev===1){vblCounter=6*(vblSaveCounter-1);count=vblCounter+26*vblSaveCounter*2;}else
- count=6;break;case 22330000:count=vblCounter+6;break;case 23410000:count=300;break;case 25211000:case 25212000:count=10;break;case 211400000:case 212600000:case 212500000:count=50;break;case 211600000:count=32;break;case 212100000:count=29;break;case 211900000:count=75;break;case 23173000:count=29;break;case 221311000:count=vblCounter+5;break;case 22340000:count=vblCounter+4;break;case 22350000:count=vblCounter+3;break;case 25224000:count=vblCounter*9;break;case 25225000:count=vblCounter*11;break;case 25223000:count=vblCounter*6;break;case 31132000:case 31132100:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetFlotCount2Double(pLinePoints,vblCounter,vbiDrawThis);vblCounter+=vblSaveCounter;count=vblCounter;break;case 31132200:case 31132300:vblCounter=armyc2.c2sd.JavaLineArray.flot.GetFlotCount2Double(pLinePoints,vblCounter,vbiDrawThis);count=vblCounter;break;case 23225000:dRadius=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(pLinePoints[0],pLinePoints[1],pLinePoints[2]);count=Math.floor(((dRadius/5)*3));if(clipBounds!==null){var width=clipBounds.getWidth();var height=clipBounds.getHeight();dRadius=Math.sqrt(width*width+height*height);count=Math.floor((dRadius/5))+6;}
- break;case 23131100:case 23131200:case 23132000:count=armyc2.c2sd.JavaLineArray.countsupport.GetDitchCountDouble(pLinePoints,vblSaveCounter,vbiDrawThis);break;case 21700000:case 22521100:case 22521410:case 22521411:case 22320000:case 22320001:case 22521200:case 22521420:case 22521421:count=2*vblCounter+8;break;case 21710000:count=2*vblCounter+17;break;case 22521300:count=2*vblCounter+19;break;case 22421000:count=32*vblCounter;break;case 22225000:case 22223000:case 22221000:vblCounter=6*(vblSaveCounter-1);count=vblCounter+26*vblSaveCounter*2;break;case 23134000:case 23112000:case 23115000:case 23114000:case 23350000:case 23113000:case 23111000:case 22624000:case 22134000:case 23330000:count=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pLinePoints,vbiDrawThis,vblSaveCounter);break;case 23111001:pUpperLinePoints=new Array(vblCounter);pLowerLinePoints=new Array(vblCounter);var pUpperLowerLinePoints=new Array(2*vblCounter);for(j=0;j<vblCounter;j++)
- pLowerLinePoints[j]=pLinePoints[j];for(j=0;j<vblCounter;j++)
- pUpperLinePoints[j]=pLinePoints[j];pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.CoordIL2Double(1,pUpperLinePoints,1,vblCounter,vbiDrawThis,30);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.CoordIL2Double(1,pLowerLinePoints,0,vblCounter,vbiDrawThis,30);for(j=0;j<vblCounter;j++)
- pUpperLowerLinePoints[j]=pUpperLinePoints[j];for(j=0;j<vblCounter;j++)
- pUpperLowerLinePoints[j+vblCounter]=pLowerLinePoints[vblCounter-j-1];vblSaveCounter=2*vblCounter;count=armyc2.c2sd.JavaLineArray.countsupport.GetFORTLCountDouble(pUpperLowerLinePoints,vbiDrawThis,2*vblCounter);break;case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231111000:case 231114000:case 231112000:case 231113000:count=armyc2.c2sd.JavaLineArray.Channels.GetTripleCountDouble(pLinePoints,vblCounter,vbiDrawThis);break;case 22123000:pUpperLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(1,pUpperLinePoints,1,vblCounter,vbiDrawThis,20);pLowerLinePoints=armyc2.c2sd.JavaLineArray.Channels.GetChannelArray2Double(1,pLowerLinePoints,0,vblCounter,vbiDrawThis,20);var lUpperFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pUpperLinePoints,vblCounter);var lLowerFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(pLowerLinePoints,vblCounter);count=lUpperFlotCount+lLowerFlotCount;break;case 31133000:case 31133100:vblSaveCounter=vblCounter;vblCounter=armyc2.c2sd.JavaLineArray.flot.GetOccludedCountDouble(pLinePoints,vblCounter);vblCounter+=vblSaveCounter;count=vblCounter;break;case 211100000:case 23172000:if(pLinePoints.length>1)
- count=armyc2.c2sd.JavaLineArray.countsupport.GetDISMFixCountDouble(pLinePoints[0],pLinePoints[1],clipBounds);else
- count=0;break;case 23212000:if(clipBounds!==null){armyc2.c2sd.JavaLineArray.countsupport.GetByDifSegment(pLinePoints,pointsCorner);var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMinX(),clipBounds.getMinY());var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMaxX(),clipBounds.getMaxY());var ptsCorner=armyc2.c2sd.JavaLineArray.lineutility.BoundOneSegment(pointsCorner[0],pointsCorner[1],ul,lr);if(ptsCorner!==null)
- count=armyc2.c2sd.JavaLineArray.countsupport.GetDISMFixCountDouble(ptsCorner[0],ptsCorner[1],clipBounds);else
- count=20;}else
- count=armyc2.c2sd.JavaLineArray.countsupport.GetDISMFixCountDouble(pLinePoints[0],pLinePoints[1],clipBounds);break;default:count=vblCounter;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetCountersDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetCountersDouble "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return Math.floor(count);},GetReefCount:function(pLinePoints,vblCounter){var count=0;try{var d=0;for(var j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);count+=Math.floor(5*Math.floor(d)/40);}
- count+=2*vblCounter;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetReefCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetReefCount",exc));}else{throw exc;}}
- return count;},GetRestrictedAreaCount:function(pLinePoints,vblCounter){var count=0;try{var d=0;for(var j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);count+=Math.floor(4*Math.floor(d)/15);}
- count+=2*vblCounter;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetRestrictedAreaCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetRestrictedAreaCount",exc));}else{throw exc;}}
- return count;},GetPipeCount:function(pLinePoints,vblCounter){var count=0;try{var d=0;for(var j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);count+=Math.floor(3*Math.floor(d)/20);}
- count+=2*vblCounter;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetPipeCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetPipeCount",exc));}else{throw exc;}}
- return count;},GetXPointsCount:function(pOriginalLinePoints,vblCounter){var xCounter=0;try{var j=0;var d=0;var numThisSegment=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);numThisSegment=Math.floor(((d-10)/20));xCounter+=4*numThisSegment;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetXPointsCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetXPointsCount",exc));}else{throw exc;}}
- return xCounter;},GetLVOCount:function(pOriginalLinePoints,vblCounter){var lEllipseCounter=0;try{var d=0;var lHowManyThisSegment=0;var j=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pOriginalLinePoints[j],pOriginalLinePoints[j+1]);lHowManyThisSegment=Math.floor(((d-20)/20))+1;lEllipseCounter+=lHowManyThisSegment*37;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetLVOCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetLVOCount",exc));}else{throw exc;}}
- return lEllipseCounter;},GetIcingCount:function(points,vblCounter){var total=2*vblCounter;try{var length=0;for(var j=0;j<vblCounter-1;j++){length=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(points[j],points[j+1]);length=(length/15)*4;total+=length;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetIcingCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetIcingCount",exc));}else{throw exc;}}
- return total;},GetITDQty:function(pLinePoints,vblCounter){var total=0;try{var j=0;var d=0;var n=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);n=2*Math.floor((d/15));if(n<2)
- n=2;total+=n;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetITDQty",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetITDQty",exc));}else{throw exc;}}
- return total;},GetConverganceQty:function(pLinePoints,vblCounter){var total=vblCounter;try{var j=0;var d=0;for(j=0;j<vblCounter-1;j++){d=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);total+=4*Math.floor((d/10));}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetConverganceQty",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetConverganceQty",exc));}else{throw exc;}}
- return total;},GetDitchCountDouble:function(pLinePoints,vblCounter,vbiDrawThis){var vblXCounter=0;try{var j=0;var nHowManyThisSegment=0;var dHowFar=0;vblXCounter=vblCounter;for(j=0;j<vblCounter-1;j++){dHowFar=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);nHowManyThisSegment=Math.floor(((dHowFar-1)/12));if(dHowFar>24){switch(vbiDrawThis){case 23132000:vblXCounter+=5*nHowManyThisSegment+1;break;default:vblXCounter+=4*nHowManyThisSegment;break;}}else{vblXCounter+=2;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetDitchcountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDitchCountDouble "+Integer.toString(vbiDrawThis),exc));}else{throw exc;}}
- return vblXCounter;},GetSquallQty:function(pLinePoints,quantity,length,numPoints){var counter=0;try{var j=0;var dist=0;var numCurves=0;for(j=0;j<numPoints-1;j++){dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);numCurves=Math.floor((dist/length));counter+=numCurves*quantity;if(numCurves===0){counter+=2;}}
- if(counter<numPoints){counter=numPoints;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetSquallQty",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSquallQty",exc));}else{throw exc;}}
- return counter;},GetSquallSegQty:function(StartPt,EndPt,quantity,length){var qty=0;try{var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(StartPt,EndPt);var numCurves=Math.floor((dist/length));qty=numCurves*quantity;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetSquallSegQty",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSquallSegQty",exc));}else{throw exc;}}
- return qty;},GetFORTLCountDouble:function(pLinePoints,linetype,vblCounter){var lCounter=0;try{var j=0;var dCounter=0;var dIncrement=0;switch(linetype){case 31131100:case 31131000:case 31131200:case 31131300:dIncrement=60;break;case 31142000:dIncrement=20;break;default:dIncrement=20;break;}
- for(j=0;j<vblCounter-1;j++){dCounter=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);switch(linetype){case 31131200:dCounter=(dCounter/dIncrement)*13;break;case 31131300:dCounter=(dCounter/dIncrement)*17;break;default:dCounter=(dCounter/dIncrement)*10;break;}
- if(dCounter<4){dCounter=4;}
- lCounter+=Math.floor(dCounter);}
- lCounter+=10+vblCounter;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetFORTLCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFORTLCountDouble",exc));}else{throw exc;}}
- return lCounter;},GetByDifSegment:function(points,pointsCorner){try{var point_mid=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();if(pointsCorner===null){pointsCorner=new Array(2);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pointsCorner);}
- point_mid.x=(points[0].x+points[1].x)/2;point_mid.y=(points[0].y+points[1].y)/2;pointsCorner[0].x=points[0].x-point_mid.x+points[2].x;pointsCorner[0].y=points[0].y-point_mid.y+points[2].y;pointsCorner[1].x=points[1].x-point_mid.x+points[2].x;pointsCorner[1].y=points[1].y-point_mid.y+points[2].y;return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetByDifSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetByDifSegment",exc));}else{throw exc;}}},GetDISMFixCountDouble:function(FirstLinePoint,LastLinePoint,clipBounds){var counter=0;try{var savepoints=new Array(2);var dLength=0;var dJaggyHalfAmp=0;var dJaggyHalfPeriod=0;var iNumJaggies=0;savepoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(FirstLinePoint);savepoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(LastLinePoint);if(clipBounds!==null){var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMinX(),clipBounds.getMinY());var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(clipBounds.getMaxX(),clipBounds.getMaxY());savepoints=armyc2.c2sd.JavaLineArray.lineutility.BoundOneSegment(FirstLinePoint,LastLinePoint,ul,lr);}
- if(savepoints===null)
- return 0;dLength=Math.sqrt((savepoints[1].x-savepoints[0].x)*(savepoints[1].x-savepoints[0].x)+(savepoints[1].y-savepoints[0].y)*(savepoints[1].y-savepoints[0].y));dJaggyHalfAmp=dLength/15;if(dJaggyHalfAmp>armyc2.c2sd.JavaLineArray.countsupport.maxLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.countsupport.maxLength;}
- if(dJaggyHalfAmp<armyc2.c2sd.JavaLineArray.countsupport.minLength){dJaggyHalfAmp=armyc2.c2sd.JavaLineArray.countsupport.minLength;}
- dJaggyHalfPeriod=dJaggyHalfAmp/1.5;iNumJaggies=Math.floor((dLength/dJaggyHalfPeriod))-3;if(iNumJaggies<0){iNumJaggies=0;}
- savepoints=null;counter=20+iNumJaggies*3;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.countsupport._className,"GetDISMFixCount",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDISMFixCount",exc));}else{throw exc;}}
- return counter;},maxLength:100,minLength:5,_className:"countsupport"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.flot={GetAnchorageFlotSegment:function(vbPoints,x1,y1,x2,y2,segment,points,bFlip,lDirection,lLastDirection){var lSegCounter=0;try{var j=0;var dDistance=0;var nNumSegs=0;var m=0;var lLocx=0;var lLocy=0;var dAngle=0;var arcPoints=Clazz.newArray(30,0);var dRemainder=0;var dNum=0;var dDen=0;if(segment===0&&vbPoints[0]>=vbPoints[2]){bFlip.value[0]=1;}if(segment===0&&vbPoints[0]<vbPoints[2]){bFlip.value[0]=0;}dNum=vbPoints[2*segment+3]-vbPoints[2*segment+1];dDen=vbPoints[2*segment+2]-vbPoints[2*segment];if(dDen===0){dAngle=1.5707963267948966;}else{dAngle=Math.abs(Math.atan(dNum/dDen));}dAngle=(57.29577951308232)*dAngle;if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=90-dAngle;}else if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=dAngle+90;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=270-dAngle;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=270+dAngle;}dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistance2(x1,y1,x2,y2);nNumSegs=Math.floor((dDistance/20));if(nNumSegs%2===0){nNumSegs-=1;}dRemainder=nNumSegs*20-dDistance;dDistance=dDistance+dRemainder;if(vbPoints[2*segment]>=vbPoints[2*segment+2]){dAngle=dAngle+90;lDirection.value[0]=1;}else{dAngle=dAngle-90;lDirection.value[0]=0;}if(segment>0&&lDirection.value[0]!==lLastDirection.value[0]){if(bFlip.value[0]===1){bFlip.value[0]=0;}else{bFlip.value[0]=1;}}if(bFlip.value[0]===1){dAngle=dAngle+180;}for(m=0;m<nNumSegs;m+=2){lLocx=Math.floor((x1+(m+0.5)*(x2-x1)*20/dDistance));lLocy=Math.floor((y1+(m+0.5)*(y2-y1)*20/dDistance));armyc2.c2sd.JavaLineArray.flot.CalcAnglePoints(lLocx,lLocy,dAngle,arcPoints,dDistance/(nNumSegs*2));for(j=0;j<30;j++){points[lSegCounter]=arcPoints[j];lSegCounter++;}}
- lLastDirection.value[0]=lDirection.value[0];arcPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetAnchorageFlotSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetAnchorageFlotSegment",exc));}else{throw exc;}}
- return lSegCounter;},GetAnchorageCountDouble:function(vbPoints,numPts){var lTotalpts=0;try{var j=0;var lNumSegs=0;var dDistance=0;var vbPoints2=null;vbPoints2=new Array(numPts);for(j=0;j<numPts;j++){vbPoints2[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(vbPoints[j]);}
- for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(vbPoints2[j],vbPoints2[j+1]);lNumSegs=Math.floor((dDistance/20));if(lNumSegs>0){lTotalpts+=lNumSegs*12;}else{lTotalpts+=1;}}
- lTotalpts+=1;vbPoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetAnchorageCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetAnchorageCountDouble",exc));}else{throw exc;}}
- return(lTotalpts);},GetFlotCount2Double:function(vbPoints,numPts,lineType){var lTotalpts=0;try{var j=0;var lNumSegs=0;var dDistance=0;var dIncrement=0;var nFactor=10;switch(lineType){case 31132000:case 31132100:dIncrement=40;break;case 31132200:dIncrement=60;nFactor=17;break;case 31132300:dIncrement=60;nFactor=20;break;default:dIncrement=20;break;}
- for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(vbPoints[j],vbPoints[j+1]);lNumSegs=Math.floor((dDistance/dIncrement));lTotalpts=lTotalpts+lNumSegs*nFactor;switch(lineType){case 31132200:case 31132300:if(lNumSegs===0){lTotalpts+=2;}break;default:break;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlotCount2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlotCount2Double",exc));}else{throw exc;}}
- return lTotalpts;},GetFlot2Double:function(vbPoints2,numPts,lineType){var lFlotCounter=0;try{var j=0;var k=0;var l=0;var x1=0;var y1=0;var x2=0;var y2=0;var z2=0;var numSegPts=-1;var z=0;var lFlotCount=0;var lNumSegs=0;var dDistance=0;var vbPoints=null;var points=null;var dIncrement=0;var style10Points=null;var style10Counter=0;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var crossPt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var crossPt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var bFlip=new armyc2.c2sd.JavaLineArray.ref();var lDirection=new armyc2.c2sd.JavaLineArray.ref();var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();bFlip.value=Clazz.newArray(1,0);lDirection.value=Clazz.newArray(1,0);lLastDirection.value=Clazz.newArray(1,0);bFlip.value[0]=-1;lDirection.value[0]=-1;lLastDirection.value[0]=-1;lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCount2Double(vbPoints2,numPts,lineType);if(lFlotCount<=0){return 0;}style10Points=new Array(lFlotCount);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(style10Points);vbPoints=Clazz.newArray(2*numPts,0);switch(lineType){case 31132000:case 31132100:dIncrement=40;break;case 31132200:case 31132300:dIncrement=60;break;default:dIncrement=20;break;}
- for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(vbPoints2[j].x);k++;vbPoints[k]=Math.floor(vbPoints2[j].y);k++;}
- k=0;j=0;for(l=0;l<numPts-1;l++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistance2(vbPoints[2*l],vbPoints[2*l+1],vbPoints[2*l+2],vbPoints[2*l+3]);lNumSegs=Math.floor((dDistance/dIncrement));if(lNumSegs>0){points=Clazz.newArray(lNumSegs*30,0);numSegPts=armyc2.c2sd.JavaLineArray.flot.GetFlotSegment2(vbPoints,l,points,lineType,bFlip,lDirection,lLastDirection);for(j=0;j<numSegPts;j++){x1=points[k];y1=points[k+1];z=points[k+2];pt0.x=x1;pt0.y=y1;pt0.style=z;if(j<numSegPts-1){x2=points[k+3];y2=points[k+4];z2=points[k+5];pt1.x=x2;pt1.y=y2;pt1.style=z2;}k+=3;if(lFlotCounter<lFlotCount){vbPoints2[lFlotCounter].x=x1;vbPoints2[lFlotCounter].y=y1;switch(lineType){case 31132000:case 31132200:case 31132300:if((lFlotCounter+1)%10===0){vbPoints2[lFlotCounter].style=10;if(j<numSegPts-1){style10Points[style10Counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(vbPoints2[lFlotCounter]);style10Points[style10Counter].style=0;style10Counter++;if(j<numSegPts-2){if(lineType===31132200){pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(style10Points[style10Counter-1]);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,10,5);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,20,20);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,30,0);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,70,5);}if(lineType===31132300){pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(style10Points[style10Counter-1]);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,10,5);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,15,0);crossPt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(style10Points[style10Counter-1],pt1,style10Points[style10Counter-1],3,5,0);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,25,5);crossPt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(style10Points[style10Counter-1],pt1,style10Points[style10Counter-1],2,5,5);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(crossPt1);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(crossPt2);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,30,0);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,60,5);}}}else{pt2.x=vbPoints[2*l];pt2.y=vbPoints[2*l+1];pt2.style=0;style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,40,5);pt2.x=vbPoints[2*l+2];pt2.y=vbPoints[2*l+3];pt2.style=5;style10Points[style10Counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(vbPoints2[lFlotCounter]);style10Points[style10Counter++].style=0;style10Points[style10Counter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);}}else{vbPoints2[lFlotCounter].style=9;}break;default:vbPoints2[lFlotCounter].style=0;break;}
- lFlotCounter++;}}
- switch(lineType){case 31132000:case 31132200:case 31132300:vbPoints2[lFlotCounter-1].style=10;break;default:vbPoints2[lFlotCounter-1].style=5;break;}
- k=0;points=null;}else{style10Points[style10Counter].x=vbPoints[2*l];style10Points[style10Counter].y=vbPoints[2*l+1];style10Points[style10Counter++].style=0;style10Points[style10Counter].x=vbPoints[2*l+2];style10Points[style10Counter].y=vbPoints[2*l+3];style10Points[style10Counter++].style=5;}}
- switch(lineType){case 31132200:case 31132300:break;default:vbPoints=null;return lFlotCounter;}
- for(j=0;j<style10Counter;j++){vbPoints2[lFlotCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(style10Points[j]);}
- vbPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlot2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlot2Double",exc));}else{throw exc;}}
- return lFlotCounter;},GetFlotSegment2:function(vbPoints,segment,points,lineType,bFlip,lDirection,lLastDirection){var nNumSegs=0;try{var j=0;var dDistance=0;var m=0;var lLocx=0;var lLocy=0;var lSegCounter=0;var dAngle=0;var arcpoints=Clazz.newArray(30,0);var dRemainder=0;var dNum=0;var dDen=0;var dIncrement=0;switch(lineType){case 31132000:case 31132100:dIncrement=40;break;case 31132200:case 31132300:dIncrement=60;break;case 31133000:case 31133100:dIncrement=50;break;case 31134000:dIncrement=50;break;case 31134100:case 31134200:case 31134300:dIncrement=80;break;case 31133200:dIncrement=80;break;default:dIncrement=20;break;}
- lSegCounter=0;if(segment===0&&vbPoints[0]>=vbPoints[2]){if(lineType!==31134000&&lineType!==31134100&&lineType!==31134200&&lineType!==31134300){bFlip.value[0]=1;}else{bFlip.value[0]=0;}}if(segment===0&&vbPoints[0]<vbPoints[2]){if(lineType!==31134000&&lineType!==31134100&&lineType!==31134200&&lineType!==31134300){bFlip.value[0]=0;}else{bFlip.value[0]=1;}}dNum=vbPoints[2*segment+3]-vbPoints[2*segment+1];dDen=vbPoints[2*segment+2]-vbPoints[2*segment];if(dDen===0){dAngle=1.5707963267948966;}else{dAngle=Math.abs(Math.atan(dNum/dDen));}dAngle=(57.29577951308232)*dAngle;if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=90-dAngle;}else if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=dAngle+90;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=270-dAngle;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=270+dAngle;}dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistance2(vbPoints[2*segment],vbPoints[2*segment+1],vbPoints[2*segment+2],vbPoints[2*segment+3]);nNumSegs=Math.floor((dDistance/dIncrement));dRemainder=nNumSegs*dIncrement-dDistance;dDistance=dDistance+dRemainder;if(vbPoints[2*segment]>=vbPoints[2*segment+2]){dAngle=dAngle+90;lDirection.value[0]=1;}else{dAngle=dAngle-90;lDirection.value[0]=0;}if(segment>0&&lDirection.value[0]!==lLastDirection.value[0]){if(bFlip.value[0]===1){bFlip.value[0]=0;}else{bFlip.value[0]=1;}}if(bFlip.value[0]===1){dAngle=dAngle+180;}for(m=0;m<nNumSegs;m++){lLocx=Math.floor((vbPoints[2*segment]+(m+0.5)*(vbPoints[2*segment+2]-vbPoints[2*segment])*dIncrement/dDistance));lLocy=Math.floor((vbPoints[2*segment+1]+(m+0.5)*(vbPoints[2*segment+3]-vbPoints[2*segment+1])*dIncrement/dDistance));armyc2.c2sd.JavaLineArray.flot.CalcAnglePoints(lLocx,lLocy,dAngle,arcpoints,10);for(j=0;j<30;j++){points[lSegCounter]=arcpoints[j];lSegCounter=lSegCounter+1;}}
- lLastDirection.value[0]=lDirection.value[0];arcpoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlotSegment2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlotSegment2",exc));}else{throw exc;}}
- return nNumSegs*10;},GetOFYCountDouble:function(pLinePoints,numPts,lineType){var lTotalpts=0;try{var j=0;var lNumSegs=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;var nFactor=3;var interval=50;if(lineType===31133200){interval=80;nFactor=7;}for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/interval));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;if(lNumFlots<1){lNumFlots=1;}if(lNumSpikes<1){lNumSpikes=1;}lTotalpts+=lNumFlots*18;lTotalpts+=lNumSpikes*nFactor;}
- if(lTotalpts<(nFactor+15)*numPts){lTotalpts=25*numPts;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetOFYCountDoulbe",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetOFYCountDouble",exc));}else{throw exc;}}
- return lTotalpts;},GetOccludedPointsDouble:function(pLinePoints,numPts,lineType){var nTotalCounter=0;try{var j=0;var k=0;var lNumSegs=0;var l=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;var m=new armyc2.c2sd.JavaLineArray.ref();var lTotalPoints=0;var points=null;var pSpikePoints=null;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var tempPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pFlotPoints=null;var dSpikeSize=20;var dIncrement=50;var vbPoints=null;var nFlotCounter=0;var nSpikeCounter=0;var flots=null;var sumOfFlots=0;var segmentLength=0;var spikeLength=0;var bolTooLong=0;var d1=0;var d2=0;var bolVertical=0;var bFlip=new armyc2.c2sd.JavaLineArray.ref();var lDirection=new armyc2.c2sd.JavaLineArray.ref();var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();m.value=Clazz.newArray(1,0);bFlip.value=Clazz.newArray(1,0);lDirection.value=Clazz.newArray(1,0);lLastDirection.value=Clazz.newArray(1,0);bFlip.value[0]=-1;lDirection.value[0]=-1;lLastDirection.value[0]=-1;lTotalPoints=armyc2.c2sd.JavaLineArray.flot.GetOccludedCountDouble(pLinePoints,numPts);vbPoints=Clazz.newArray(numPts*2,0);pSpikePoints=new Array(Math.floor(3*lTotalPoints/13));pFlotPoints=new Array(Math.floor(10*lTotalPoints/13));for(j=0;j<pSpikePoints.length;j++){pSpikePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pSpikePoints[j].style=5;}
- for(j=0;j<pFlotPoints.length;j++){pFlotPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pFlotPoints[j].style=5;}
- flots=Clazz.newArray(numPts+1,0);for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(pLinePoints[j].x);k++;vbPoints[k]=Math.floor(pLinePoints[j].y);k++;}
- k=0;flots[0]=0;for(j=0;j<numPts;j++){flots[j+1]=0;}
- for(j=0;j<numPts-1;j++){bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);m.value[0]=-m.value[0];dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/dIncrement));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;flots[j+1]=lNumSegs;k=0;if(lNumFlots>0){points=Clazz.newArray(lNumFlots*30,0);armyc2.c2sd.JavaLineArray.flot.GetFlotSegment2(vbPoints,j,points,lineType,bFlip,lDirection,lLastDirection);for(l=0;l<lNumFlots*10;l++){pFlotPoints[nFlotCounter].x=points[k];pFlotPoints[nFlotCounter].y=points[k+1];pFlotPoints[nFlotCounter].style=9;if((nFlotCounter)%10===0){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[nFlotCounter]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[nFlotCounter]);if(d2>d1){pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d1);}else{pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pLinePoints[j+1],-d2);}pFlotPoints[nFlotCounter].style=9;if(lineType===31133100){pFlotPoints[nFlotCounter].style=0;}}if((nFlotCounter+1)%10===0){if(lineType===31133000||lineType===31133100){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[nFlotCounter-9]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[nFlotCounter-9]);if(d2>d1){pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d1-20);}else{pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pLinePoints[j+1],-d2+20);}if(lineType===31133000){pFlotPoints[nFlotCounter].style=10;}if(lineType===31133100){pFlotPoints[nFlotCounter].style=5;}}if(lineType===31134000){pFlotPoints[nFlotCounter].style=23;}}k+=3;nFlotCounter++;}
- points=null;}segmentLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);for(k=0;k<lNumSpikes-1;k++){bolTooLong=0;sumOfFlots=0;for(l=0;l<=j;l++){sumOfFlots+=flots[l];}
- d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[sumOfFlots*10+10*k]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[sumOfFlots*10+10*k]);switch(lineType){case 31133000:case 31133100:if(d2>d1){tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-d1-dIncrement/2,0);}else{tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pLinePoints[j+1],-d2+dIncrement/2,0);}break;case 31134000:if(d2>d1){tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pLinePoints[j],-d1-dIncrement/8,0);}else{tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pLinePoints[j+1],-d2+dIncrement/8,0);}break;default:break;}
- spikeLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],tempPoint);if(spikeLength+dSpikeSize<segmentLength){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);bolTooLong=1;}pSpikePoints[nSpikeCounter].style=9;nSpikeCounter++;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pSpikePoints[nSpikeCounter-1]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pSpikePoints[nSpikeCounter-1]);if(d1>d2){pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pSpikePoints[nSpikeCounter-1],dSpikeSize/2);}else{pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pSpikePoints[nSpikeCounter-1],-dSpikeSize/2);}if(bolTooLong===0){if(bolVertical!==0){if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,2,dSpikeSize);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,3,dSpikeSize);}pSpikePoints[nSpikeCounter].style=0;nSpikeCounter++;}else{if(pLinePoints[j].y>pLinePoints[j+1].y){pSpikePoints[nSpikeCounter].x=pt0.x-dSpikeSize;}else{pSpikePoints[nSpikeCounter].x=pt0.x+dSpikeSize;}pSpikePoints[nSpikeCounter].y=pt0.y;nSpikeCounter++;}}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nSpikeCounter++;}pSpikePoints[nSpikeCounter-1].style=9;if(bolTooLong===0){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pSpikePoints[nSpikeCounter-2]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pSpikePoints[nSpikeCounter-2]);if(d1>d2){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nSpikeCounter-2],dSpikeSize,0);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pSpikePoints[nSpikeCounter-2],-dSpikeSize,0);}if(lineType===31133000){pSpikePoints[nSpikeCounter].style=10;}if(lineType===31133100){pSpikePoints[nSpikeCounter].style=5;}if(lineType===31134000){pSpikePoints[nSpikeCounter].style=24;}}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;}nSpikeCounter++;}
- if(nSpikeCounter===0){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter].style=5;pSpikePoints[nSpikeCounter+1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+1].style=5;pSpikePoints[nSpikeCounter+2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+2].style=5;nSpikeCounter+=3;}}
- for(j=0;j<pLinePoints.length;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[0]);pLinePoints[j].style=5;}
- nFlotCounter=0;nSpikeCounter=0;for(j=0;j<Math.floor(lTotalPoints/13);j++){for(k=0;k<10;k++){pLinePoints[nTotalCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[j*10+k]);nTotalCounter++;nFlotCounter++;}
- for(k=0;k<3;k++){pLinePoints[nTotalCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j*3+k]);nTotalCounter++;nSpikeCounter++;}}
- for(j=nTotalCounter;j<pLinePoints.length;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nTotalCounter-1]);}
- vbPoints=null;pSpikePoints=null;pFlotPoints=null;flots=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetOccludedPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetOccludedPointsDouble",exc));}else{throw exc;}}
- return nTotalCounter;},GetOccludedCountDouble:function(pLinePoints,numPts){var lTotalpts=0;try{var j=0;var lNumSegs=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/50));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;if(lNumFlots<1){lNumFlots=1;}if(lNumSpikes<1){lNumSpikes=1;}lTotalpts+=lNumFlots*10;lTotalpts+=lNumSpikes*3;}
- if(lTotalpts<13*numPts){lTotalpts=13*numPts;}if(lTotalpts<numPts){lTotalpts=numPts;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetOccludedCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetOccludedCountDouble",exc));}else{throw exc;}}
- return lTotalpts;},CalcNewPoint:function(locx,locY,angle,point,dist){try{var m=0;var deltaX=0;var deltaY=0;var dx=0;var dy=0;var nQuadrant=-1;if(angle<0){angle=angle+360;}if(angle>360){angle=angle-360;}if(0<=angle&&angle<=90){nQuadrant=0;angle=90-angle;angle=Math.abs(angle)*(0.017453292519943295);}if(90<angle&&angle<=180){nQuadrant=1;angle=angle-90;angle=Math.abs(angle)*(0.017453292519943295);}if(180<angle&&angle<=270){nQuadrant=2;angle=270-angle;angle=Math.abs(angle)*(0.017453292519943295);}if(270<angle&&angle<=360){nQuadrant=3;angle=angle-270;angle=Math.abs(angle)*(0.017453292519943295);}m=Math.abs(Math.tan(angle));deltaX=Math.abs(dist/Math.sqrt(1+m*m));deltaY=Math.abs(m*deltaX);switch(nQuadrant){case 0:dx=locx+deltaX;dy=locY-deltaY;break;case 1:dx=locx+deltaX;dy=locY+deltaY;break;case 2:dx=locx-deltaX;dy=locY+deltaY;break;case 3:dx=locx-deltaX;dy=locY-deltaY;break;default:break;}
- point[0]=Math.floor(dx);point[1]=Math.floor(dy);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"CalcNewPoint",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcNewPoint",exc));}else{throw exc;}}
- return 1;},GetFlotSegment:function(vbPoints,segment,points,bFlip,lDirection,lLastDirection){var nNumSegs=0;try{var j=0;var dDistance=0;var m=0;var lLocx=0;var lLocy=0;var lSegCounter=0;var dAngle=0;var arcPoints=Clazz.newArray(30,0);var dRemainder=0;var dNum=0;var dDen=0;lSegCounter=0;if(segment===0&&vbPoints[0]>=vbPoints[2]){bFlip.value[0]=1;}if(segment===0&&vbPoints[0]<vbPoints[2]){bFlip.value[0]=0;}dNum=vbPoints[2*segment+3]-vbPoints[2*segment+1];dDen=vbPoints[2*segment+2]-vbPoints[2*segment];if(dDen===0){dAngle=1.5707963267948966;}else{dAngle=Math.abs(Math.atan(dNum/dDen));}dAngle=(57.29577951308232)*dAngle;if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=90-dAngle;}else if(vbPoints[2*segment+0]<=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=dAngle+90;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]<=vbPoints[2*segment+3]){dAngle=270-dAngle;}else if(vbPoints[2*segment+0]>=vbPoints[2*segment+2]&&vbPoints[2*segment+1]>=vbPoints[2*segment+3]){dAngle=270+dAngle;}dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistance2(vbPoints[2*segment],vbPoints[2*segment+1],vbPoints[2*segment+2],vbPoints[2*segment+3]);nNumSegs=Math.floor((dDistance/20));dRemainder=nNumSegs*20-dDistance;dDistance=dDistance+dRemainder;if(vbPoints[2*segment]>=vbPoints[2*segment+2]){dAngle=dAngle+90;lDirection.value[0]=1;}else{dAngle=dAngle-90;lDirection.value[0]=0;}if(segment>0&&lDirection.value[0]!==lLastDirection.value[0]){if(bFlip.value[0]===1){bFlip.value[0]=0;}else{bFlip.value[0]=1;}}if(bFlip.value[0]===1){dAngle=dAngle+180;}for(m=0;m<nNumSegs;m++){lLocx=Math.floor((vbPoints[2*segment]+(m+0.5)*(vbPoints[2*segment+2]-vbPoints[2*segment])*20/dDistance));lLocy=Math.floor((vbPoints[2*segment+1]+(m+0.5)*(vbPoints[2*segment+3]-vbPoints[2*segment+1])*20/dDistance));armyc2.c2sd.JavaLineArray.flot.CalcAnglePoints(lLocx,lLocy,dAngle,arcPoints,dDistance/(nNumSegs*2));if(points!==null){for(j=0;j<30;j++){points[lSegCounter]=arcPoints[j];lSegCounter=lSegCounter+1;}}}
- lLastDirection.value[0]=lDirection.value[0];arcPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlotSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlotSegment",exc));}else{throw exc;}}
- return nNumSegs*10;},GetFlotDouble:function(vbPoints2,numPts){var lFlotCounter=0;try{var bFlip=new armyc2.c2sd.JavaLineArray.ref();bFlip.value=Clazz.newArray(1,0);bFlip.value[0]=-1;var lDirection=new armyc2.c2sd.JavaLineArray.ref();lDirection.value=Clazz.newArray(1,0);lDirection.value[0]=-1;var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();lLastDirection.value=Clazz.newArray(1,0);lLastDirection.value[0]=-1;var j=0;var k=0;var l=0;var m=0;var x1=0;var y1=0;var numSegPts=-1;var z=0;var lFlotCount=0;var lNumSegs=0;var dDistance=0;var vbPoints=null;var points=null;lFlotCount=armyc2.c2sd.JavaLineArray.flot.GetFlotCountDouble(vbPoints2,numPts);vbPoints=Clazz.newArray(2*numPts,0);for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(vbPoints2[j].x);k++;vbPoints[k]=Math.floor(vbPoints2[j].y);k++;}
- k=0;for(l=0;l<numPts-1;l++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistance2(vbPoints[m],vbPoints[m+1],vbPoints[m+2],vbPoints[m+3]);m+=2;lNumSegs=Math.floor((dDistance/20));if(lNumSegs>0){points=Clazz.newArray(lNumSegs*30,0);numSegPts=armyc2.c2sd.JavaLineArray.flot.GetFlotSegment(vbPoints,l,points,bFlip,lDirection,lLastDirection);for(j=0;j<numSegPts;j++)
- {x1=points[k];y1=points[k+1];z=points[k+2];k=k+3;if(lFlotCounter<lFlotCount)
- {vbPoints2[lFlotCounter].x=x1;vbPoints2[lFlotCounter].y=y1;lFlotCounter++;}}
- k=0;points=null;}else{points=null;numSegPts=armyc2.c2sd.JavaLineArray.flot.GetFlotSegment(vbPoints,l,points,bFlip,lDirection,lLastDirection);if(lFlotCounter<lFlotCount){vbPoints2[lFlotCounter].x=vbPoints[2*l];vbPoints2[lFlotCounter].y=vbPoints[2*l+1];lFlotCounter++;}}}
- for(j=lFlotCounter-1;j<vbPoints2.length;j++){vbPoints2[j].style=5;}
- vbPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlotDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlotDouble",exc));}else{throw exc;}}
- return lFlotCounter;},CalcAnglePoints:function(locx,locY,angle,points,dist){try{var j=0;var k=0;var lTemp=Clazz.newArray(2,0);for(j=0;j<10;j++){armyc2.c2sd.JavaLineArray.flot.CalcNewPoint(locx,locY,angle-90+20*j,lTemp,dist);points[k]=lTemp[0];points[k+1]=lTemp[1];k+=3;}
- lTemp=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"CalcAnglePoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcAnglePoints",exc));}else{throw exc;}}
- return 1;},GetFlotCountDouble:function(vbPoints,numPts){var lTotalpts=0;try{var j=0;var lNumSegs=0;var dDistance=0;var vbPoints2=null;vbPoints2=new Array(numPts);for(j=0;j<numPts;j++){vbPoints2[j]=vbPoints[j];}
- for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(vbPoints2[j],vbPoints2[j+1]);lNumSegs=Math.floor((dDistance/20));if(lNumSegs>0){lTotalpts+=lNumSegs*10;}else{lTotalpts+=1;}}
- lTotalpts+=1;vbPoints2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetFlotCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFlotCountDouble",exc));}else{throw exc;}}
- return(lTotalpts);},GetOFYPointsDouble:function(pLinePoints,numPts,lineType){var nTotalCounter=0;try{var j=0;var k=0;var lNumSegs=0;var l=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;var m=new armyc2.c2sd.JavaLineArray.ref();var lTotalPoints=0;var points=null;var pSpikePoints=null;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var tempPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pFlotPoints=null;var pSegmentPoints=null;var dSpikeSize=20;var dIncrement=80;var vbPoints=null;var nFlotCounter=0;var nSpikeCounter=0;var nSegmentCounter=0;var flots=null;var segmentLength=0;var spikeLength=0;var bolTooLong=0;var d1=0;var d2=0;var bolVertical=0;var pFlotStart=null;var pFlotEnd=null;var pSpikeStart=null;var pSpikeEnd=null;var nSpikeEndCounter=0;var nFlotEndCounter=0;var bFlip=new armyc2.c2sd.JavaLineArray.ref();var lDirection=new armyc2.c2sd.JavaLineArray.ref();var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();m.value=Clazz.newArray(1,0);bFlip.value=Clazz.newArray(1,0);lDirection.value=Clazz.newArray(1,0);lLastDirection.value=Clazz.newArray(1,0);lTotalPoints=armyc2.c2sd.JavaLineArray.flot.GetOFYCountDouble(pLinePoints,numPts,lineType);vbPoints=Clazz.newArray(numPts*2,0);pSpikePoints=new Array(lTotalPoints);pFlotPoints=new Array(lTotalPoints);pSegmentPoints=new Array(lTotalPoints);for(j=0;j<pSpikePoints.length;j++){pSpikePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pSpikePoints[j].style=5;}
- for(j=0;j<pFlotPoints.length;j++){pFlotPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pFlotPoints[j].style=5;}
- armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSegmentPoints);flots=Clazz.newArray(numPts+1,0);for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(pLinePoints[j].x);k++;vbPoints[k]=Math.floor(pLinePoints[j].y);k++;}
- k=0;flots[0]=0;for(j=0;j<numPts;j++){flots[j+1]=0;}
- for(j=0;j<numPts-1;j++){nSpikeEndCounter=0;nFlotEndCounter=0;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);m.value[0]=-m.value[0];dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/dIncrement));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;flots[j+1]=lNumSegs;k=0;if(lNumFlots>0){points=Clazz.newArray(lNumFlots*30,0);pFlotStart=new Array(lNumFlots);pFlotEnd=new Array(lNumFlots);armyc2.c2sd.JavaLineArray.flot.GetFlotSegment2(vbPoints,j,points,lineType,bFlip,lDirection,lLastDirection);for(l=0;l<lNumFlots*10;l++){pFlotPoints[nFlotCounter].x=points[k];pFlotPoints[nFlotCounter].y=points[k+1];pFlotPoints[nFlotCounter].style=9;if((nFlotCounter)%10===0){pFlotStart[Math.floor(l/10)]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[nFlotCounter]);d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[nFlotCounter]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[nFlotCounter]);if(d2>d1){pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d1);}else{pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pLinePoints[j+1],-d2);}pFlotPoints[nFlotCounter].style=9;}if((nFlotCounter+1)%10===0){if(lineType===31133200){pFlotEnd[Math.floor(l/10)]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[nFlotCounter]);nFlotEndCounter++;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[nFlotCounter-9]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[nFlotCounter-9]);if(d2>d1){pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d1-20);}else{pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pLinePoints[j+1],-d2+20);}pFlotPoints[nFlotCounter].style=10;}}k+=3;nFlotCounter++;}
- points=null;}else{pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSegmentPoints[nSegmentCounter++].style=5;}segmentLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);pSpikeStart=new Array(lNumSpikes);pSpikeEnd=new Array(lNumSpikes);for(k=0;k<lNumSpikes-1;k++){bolTooLong=0;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pFlotEnd[k],pFlotEnd[k+1]);d1=d1/2-dSpikeSize;tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotEnd[k],pLinePoints[j+1],d1,0);spikeLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],tempPoint);if(spikeLength+dSpikeSize<segmentLength){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);pSpikeStart[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);bolTooLong=1;}pSpikePoints[nSpikeCounter].style=9;nSpikeCounter++;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikePoints[nSpikeCounter-1],pLinePoints[j+1],dSpikeSize/2);if(bolTooLong===0){if(bolVertical!==0){if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,2,dSpikeSize);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,3,dSpikeSize);}pSpikePoints[nSpikeCounter].style=0;nSpikeCounter++;}else{if(pLinePoints[j].y>pLinePoints[j+1].y){pSpikePoints[nSpikeCounter].x=pt0.x-dSpikeSize;}else{pSpikePoints[nSpikeCounter].x=pt0.x+dSpikeSize;}pSpikePoints[nSpikeCounter].y=pt0.y;nSpikeCounter++;}}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nSpikeCounter++;}pSpikePoints[nSpikeCounter-1].style=9;if(bolTooLong===0){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pSpikePoints[nSpikeCounter-2]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pSpikePoints[nSpikeCounter-2]);if(d1>d2){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j],pSpikePoints[nSpikeCounter-2],dSpikeSize,0);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[j+1],pSpikePoints[nSpikeCounter-2],-dSpikeSize,0);}pSpikeEnd[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter]);nSpikeEndCounter++;if(lineType===31133200){pSpikePoints[nSpikeCounter].style=10;}}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;}nSpikeCounter++;}
- if(nSpikeEndCounter===0&&nFlotEndCounter===1){pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[0]);pSegmentPoints[nSegmentCounter++].style=5;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[0]);pSegmentPoints[nSegmentCounter++].style=5;}for(l=0;l<nSpikeEndCounter;l++){if(l===0){pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[0]);pSegmentPoints[nSegmentCounter++].style=5;}if(l===nSpikeEndCounter-1){pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[l+1]);pSegmentPoints[nSegmentCounter++].style=5;}pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikeEnd[l]);pSegmentPoints[nSegmentCounter++].style=0;pSegmentPoints[nSegmentCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[l+1]);pSegmentPoints[nSegmentCounter++].style=5;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pSpikeStart[l],pFlotEnd[l]);pSegmentPoints[nSegmentCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[l],pLinePoints[j],d1/3,0);pSegmentPoints[nSegmentCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[l],pLinePoints[j],2*d1/3,5);tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pSegmentPoints[nSegmentCounter-2],2,5,0);pSegmentPoints[nSegmentCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pSegmentPoints[nSegmentCounter-2],3,5,5);pSegmentPoints[nSegmentCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);}
- if(nSpikeCounter===0){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter].style=5;pSpikePoints[nSpikeCounter+1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+1].style=5;pSpikePoints[nSpikeCounter+2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+2].style=5;nSpikeCounter+=3;}}
- nTotalCounter=0;for(j=0;j<nFlotCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[j]);}
- for(j=0;j<nSpikeCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);}
- for(j=0;j<nSegmentCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSegmentPoints[j]);}
- for(j=nTotalCounter;j<pLinePoints.length;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nTotalCounter-1]);}
- vbPoints=null;pSpikePoints=null;pFlotPoints=null;flots=null;pFlotStart=null;pFlotEnd=null;pSpikeStart=null;pSpikeEnd=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetOFYPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetOFYPointsDouble",exc));}else{throw exc;}}
- return nTotalCounter;},GetSFPointsDouble:function(pLinePoints,numPts,lineType){var nTotalCounter=0;try{var lTotalPoints=0;var j=0;var k=0;var lNumSegs=0;var l=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;var m=new armyc2.c2sd.JavaLineArray.ref();var points=null;var pSpikePoints=null;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var tempPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pFlotPoints=null;var dSpikeSize=20;var dIncrement=80;var vbPoints=null;var nFlotCounter=0;var nSpikeCounter=0;var nSegCounter=0;var flots=null;var segmentLength=0;var spikeLength=0;var bolTooLong=0;var d1=0;var d2=0;var bolVertical=0;var pFlotStart=null;var pFlotEnd=null;var pSpikeStart=null;var pSpikeEnd=null;var pSegPoints=null;var bFlip=new armyc2.c2sd.JavaLineArray.ref();var lDirection=new armyc2.c2sd.JavaLineArray.ref();var lLastDirection=new armyc2.c2sd.JavaLineArray.ref();lTotalPoints=armyc2.c2sd.JavaLineArray.flot.GetSFCountDouble(pLinePoints,numPts);m.value=Clazz.newArray(1,0);lDirection.value=Clazz.newArray(1,0);lDirection.value[0]=-1;lLastDirection.value=Clazz.newArray(1,0);lLastDirection.value[0]=-1;bFlip.value=Clazz.newArray(1,0);bFlip.value[0]=-1;vbPoints=Clazz.newArray(numPts*2,0);pSpikePoints=new Array(lTotalPoints);pFlotPoints=new Array(lTotalPoints);for(j=0;j<pSpikePoints.length;j++){pSpikePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pSpikePoints[j].style=5;}
- for(j=0;j<pFlotPoints.length;j++){pFlotPoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);pFlotPoints[j].style=5;}
- pSegPoints=new Array(4*(numPts-1));armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSegPoints);flots=Clazz.newArray(numPts+1,0);for(j=0;j<numPts;j++){vbPoints[k]=Math.floor(pLinePoints[j].x);k++;vbPoints[k]=Math.floor(pLinePoints[j].y);k++;}
- k=0;flots[0]=0;for(j=0;j<numPts;j++){flots[j+1]=0;}
- for(j=0;j<numPts-1;j++){bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[j],pLinePoints[j+1],m);m.value[0]=-m.value[0];dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/dIncrement));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;flots[j+1]=lNumSegs;k=0;if(lNumFlots>0){points=Clazz.newArray(lNumFlots*30,0);pFlotStart=new Array(lNumFlots);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pFlotStart);pFlotEnd=new Array(lNumFlots);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pFlotEnd);armyc2.c2sd.JavaLineArray.flot.GetFlotSegment2(vbPoints,j,points,lineType,bFlip,lDirection,lLastDirection);for(l=0;l<lNumFlots*10;l++){pFlotPoints[nFlotCounter].x=points[k];pFlotPoints[nFlotCounter].y=points[k+1];if(lineType===31134100){pFlotPoints[nFlotCounter].style=19;}else{pFlotPoints[nFlotCounter].style=9;}if((nFlotCounter)%10===0){pFlotStart[Math.floor(l/10)]=pFlotPoints[nFlotCounter];d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pFlotPoints[nFlotCounter]);d2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j+1],pFlotPoints[nFlotCounter]);if(d2>d1){pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j+1],pLinePoints[j],-d1);}else{pFlotPoints[nFlotCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pLinePoints[j],pLinePoints[j+1],-d2);}if(lineType===31134100){pFlotPoints[nFlotCounter].style=19;}else{pFlotPoints[nFlotCounter].style=9;}}if((nFlotCounter+1)%10===0){if(lineType===31134100){pFlotPoints[nFlotCounter].style=5;}else{pFlotPoints[nFlotCounter].style=23;}pFlotEnd[Math.floor(l/10)]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[nFlotCounter]);}if(l===0){pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSegPoints[nSegCounter++].style=19;pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[l]);pSegPoints[nSegCounter++].style=5;}if(l===lNumFlots*10-1){pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSegPoints[nSegCounter++].style=19;pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[Math.floor(l/10)]);pSegPoints[nSegCounter++].style=5;}k+=3;nFlotCounter++;}
- points=null;}else{pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSegPoints[nSegCounter++].style=0;pSegPoints[nSegCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSegPoints[nSegCounter++].style=5;}segmentLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);pSpikeStart=new Array(lNumSpikes);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikeStart);pSpikeEnd=new Array(lNumSpikes);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSpikeEnd);for(k=0;k<lNumSpikes-1;k++){bolTooLong=0;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pFlotStart[k],pFlotStart[k+1]);d1=d1/2-dSpikeSize;tempPoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotStart[k],pLinePoints[j+1],d1,0);spikeLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],tempPoint);if(spikeLength+dSpikeSize<segmentLength){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);pSpikeStart[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempPoint);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);bolTooLong=1;}if(lineType===31134100){pSpikePoints[nSpikeCounter].style=25;}else{pSpikePoints[nSpikeCounter].style=9;}nSpikeCounter++;pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikePoints[nSpikeCounter-1],pLinePoints[j+1],dSpikeSize/2);if(bolTooLong===0){if(bolVertical!==0){if(pLinePoints[j].x<pLinePoints[j+1].x){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,2,dSpikeSize);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],pt0,3,dSpikeSize);}pSpikePoints[nSpikeCounter].style=0;nSpikeCounter++;}else{if(pLinePoints[j].y>pLinePoints[j+1].y){pSpikePoints[nSpikeCounter].x=pt0.x-dSpikeSize;}else{pSpikePoints[nSpikeCounter].x=pt0.x+dSpikeSize;}pSpikePoints[nSpikeCounter].y=pt0.y;nSpikeCounter++;}}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);nSpikeCounter++;}if(lineType==31134100){pSpikePoints[nSpikeCounter-1].style=25;}else{pSpikePoints[nSpikeCounter-1].style=9;}if(bolTooLong==0){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikePoints[nSpikeCounter-2],pLinePoints[j+1],dSpikeSize);if(lineType==31134100){pSpikePoints[nSpikeCounter].style=5;}else{pSpikePoints[nSpikeCounter].style=24;}pSpikeEnd[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter]);}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;}nSpikeCounter++;if(lineType==31134000||lineType==31134100){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pFlotStart[k],pSpikeStart[k]);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[k]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotStart[k],pLinePoints[j+1],d1/2,5);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[k]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotEnd[k],pLinePoints[j],d1/2,5);if(k==lNumSpikes-2){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[k+1]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotStart[k+1],pLinePoints[j+1],d1/2,5);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[k+1]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pFlotEnd[k+1],pLinePoints[j],d1/2,5);}pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikeStart[k]);pSpikePoints[nSpikeCounter++].style=25;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],d1/2,5);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikeEnd[k]);pSpikePoints[nSpikeCounter++].style=25;pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],d1/2,5);if(lineType==31134100){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[k]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[k]);pSpikePoints[nSpikeCounter++].style=5;if(k==lNumSpikes-2){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotEnd[k+1]);pSpikePoints[nSpikeCounter++].style=19;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotStart[k+1]);pSpikePoints[nSpikeCounter++].style=5;}pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikeEnd[k]);pSpikePoints[nSpikeCounter++].style=25;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikeStart[k]);pSpikePoints[nSpikeCounter++].style=5;}}if(lineType==31134200){pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],dSpikeSize/2,22);pSpikePoints[nSpikeCounter++]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],dSpikeSize/2,20);}if(lineType==31134300){d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pFlotStart[k],pSpikeStart[k]);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],d1/4);pSpikePoints[nSpikeCounter].style=25;pSpikePoints[nSpikeCounter+1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],d1/2);pSpikePoints[nSpikeCounter+1].style=5;pSpikePoints[nSpikeCounter+2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],d1/2);pSpikePoints[nSpikeCounter+2].style=19;pSpikePoints[nSpikeCounter+3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeStart[k],pLinePoints[j],3*d1/4);pSpikePoints[nSpikeCounter+3].style=5;pSpikePoints[nSpikeCounter+4]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nSpikeCounter],pLinePoints[j],pSpikePoints[nSpikeCounter],2,5,25);pSpikePoints[nSpikeCounter+5]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nSpikeCounter+3],pLinePoints[j],pSpikePoints[nSpikeCounter+3],3,5,5);nSpikeCounter+=6;d1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pFlotEnd[k+1],pSpikeEnd[k]);pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],d1/4);pSpikePoints[nSpikeCounter].style=25;pSpikePoints[nSpikeCounter+1]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],d1/2);pSpikePoints[nSpikeCounter+1].style=5;pSpikePoints[nSpikeCounter+2]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],d1/2);pSpikePoints[nSpikeCounter+2].style=19;pSpikePoints[nSpikeCounter+3]=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pSpikeEnd[k],pLinePoints[j+1],3*d1/4);pSpikePoints[nSpikeCounter+3].style=5;pSpikePoints[nSpikeCounter+4]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nSpikeCounter],pLinePoints[j+1],pSpikePoints[nSpikeCounter],3,5,19);pSpikePoints[nSpikeCounter+5]=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pSpikePoints[nSpikeCounter+3],pLinePoints[j+1],pSpikePoints[nSpikeCounter+3],2,5,5);nSpikeCounter+=6;}}
- if(nSpikeCounter==0){pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pSpikePoints[nSpikeCounter].style=5;nSpikeCounter++;}else{pSpikePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter].style=5;pSpikePoints[nSpikeCounter+1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+1].style=5;pSpikePoints[nSpikeCounter+2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[nSpikeCounter-1]);pSpikePoints[nSpikeCounter+2].style=5;nSpikeCounter+=3;}}
- for(j=0;j<pLinePoints.length;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[0]);pLinePoints[j].style=5;}
- nTotalCounter=0;for(j=0;j<nFlotCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pFlotPoints[j]);}
- for(j=0;j<nSpikeCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSpikePoints[j]);}
- for(j=0;j<nSegCounter;j++){pLinePoints[nTotalCounter++]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSegPoints[j]);}
- for(j=nTotalCounter;j<pLinePoints.length;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[nTotalCounter-1]);}
- vbPoints=null;pSpikePoints=null;pFlotPoints=null;flots=null;pFlotStart=null;pFlotEnd=null;pSpikeStart=null;pSpikeEnd=null;pSegPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetSFPointsDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSFPointsDouble",exc));}else{throw exc;}}
- return nTotalCounter;},GetSFCountDouble:function(pLinePoints,numPts){var lTotalpts=0;try{var j=0;var lNumSegs=0;var lNumFlots=0;var lNumSpikes=0;var dDistance=0;for(j=0;j<numPts-1;j++){dDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);lNumSegs=Math.floor((dDistance/80));lNumFlots=lNumSegs;lNumSpikes=lNumSegs;if(lNumFlots<1){lNumFlots=1;}if(lNumSpikes<1){lNumSpikes=1;}lTotalpts+=lNumFlots*10;lTotalpts+=lNumSpikes*3;lTotalpts+=lNumSegs*16;lTotalpts+=numPts*4;}
- if(lTotalpts<25*numPts){lTotalpts=25*numPts;}if(lTotalpts<numPts){lTotalpts=numPts;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.flot._className,"GetSFCountDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSFCountDouble",exc));}else{throw exc;}}
- return lTotalpts;},_className:"flot"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.lineutility={ResizeArray:function(pLinePoints,length)
- {var array=new Array();try
- {if(pLinePoints.length<=length)
- return pLinePoints;var j=0;for(j=0;j<length;j++)
- {array[j]=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[j]);}}
- catch(exc)
- {if(Clazz.instanceOf(exc))
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ResizeArray",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ResizeArray",exc));}
- else
- {throw exc;}}
- return array;},SegmentLineShape:function(pt0,pt1,shape){try{if(pt0===null||pt1===null)
- return;var j=0;var n=0;var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);n=Math.floor((dist/25));var pt=null;shape.lineTo(pt0);for(j=1;j<=n;j++){pt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,25);shape.lineTo(pt);}
- shape.lineTo(pt1);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"SegmentLineShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SegmentLineShape",exc));}else{throw exc;}}
- return;},GetDirAtkAirMiddleSegment:function(pLinePoints,vblSaveCounter){var middleSegment=-1;try{var d=0;var k=0;for(k=vblSaveCounter-1;k>0;k--){d+=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[k],pLinePoints[k-1]);if(d>60){break;}}
- if(d>60){middleSegment=k;}else{if(vblSaveCounter<=3){middleSegment=1;}else{middleSegment=2;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetDirAtkAirMiddleSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDirAtkAirMiddleSegment",exc));}else{throw exc;}}
- return middleSegment;},CalcSegmentAngleDouble:function(pt0,pt1){var dAngle=0;try{var nTemp=0;var m=new armyc2.c2sd.JavaLineArray.ref();nTemp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(nTemp===0)
- dAngle=1.5707963267948966;else{dAngle=Math.atan(m.value[0]);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcSegmentAngleDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcSegmentAngleDouble",exc));}else{throw exc;}}
- return dAngle;},InitializePOINT2Array:function(pts){if(pts===null||pts.length===0)
- return;for(var j=0;j<pts.length;j++)
- {pts[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();}},CalcCenterPointDouble:function(pLinePoints,vblCounter){var CenterLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);try{var j=0;var dMinX=pLinePoints[0].x;var dMinY=pLinePoints[0].y;var dMaxX=pLinePoints[0].x;var dMaxY=pLinePoints[0].y;dMinX=pLinePoints[0].x;dMinY=pLinePoints[0].y;dMaxX=pLinePoints[0].x;dMaxY=pLinePoints[0].y;for(j=0;j<vblCounter;j++){if(pLinePoints[j].x<dMinX)
- dMinX=pLinePoints[j].x;if(pLinePoints[j].y<dMinY)
- dMinY=pLinePoints[j].y;if(pLinePoints[j].x>dMaxX)
- dMaxX=pLinePoints[j].x;if(pLinePoints[j].y>dMaxY)
- dMaxY=pLinePoints[j].y;}
- CenterLinePoint.x=(dMinX+dMaxX)/2;CenterLinePoint.y=(dMinY+dMaxY)/2;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcCenterPointDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcCenterPointDouble",exc));}else{throw exc;}}
- return CenterLinePoint;},CalcCenterPointDouble2:function(pLinePoints,vblCounter){var pt0=pLinePoints[0];var CenterLinePoint=new armyc2.c2sd.JavaLineArray.POINT2();try{var j=0;var dMinX=pt0.x;var dMinY=pt0.y;var dMaxX=pt0.x;var dMaxY=pt0.y;dMinX=pt0.x;dMinY=pt0.y;dMaxX=pt0.x;dMaxY=pt0.y;var pt;for(j=0;j<vblCounter;j++){pt=pLinePoints[j];if(pt.x<dMinX)
- dMinX=pt.x;if(pt.y<dMinY)
- dMinY=pt.y;if(pt.x>dMaxX)
- dMaxX=pt.x;if(pt.y>dMaxY)
- dMaxY=pt.y;}
- CenterLinePoint.x=(dMinX+dMaxX)/2;CenterLinePoint.y=(dMinY+dMaxY)/2;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcCenterPointDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcCenterPointDouble2",exc));}else{throw exc;}}
- return CenterLinePoint;},CalcDistanceDouble:function(p1,p2){var returnValue=0;try{returnValue=Math.sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));var xdist=Math.abs(p1.x-p2.x);var ydist=Math.abs(p1.y-p2.y);var max=xdist;if(ydist>xdist)
- max=ydist;if(returnValue===0||Double.isInfinite(returnValue)){if(max>0)
- returnValue=max;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcDistanceDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcDistanceDouble",exc));}else{throw exc;}}
- return returnValue;},CalcTrueSlopeDouble:function(firstLinePoint,lastLinePoint,slope){var result=1;try{if(slope.value===null)
- slope.value=Clazz.newArray(1,0);var deltaX=0;var deltaY=0;deltaX=firstLinePoint.x-lastLinePoint.x;if(deltaX===0){deltaX=1;result=1;}
- deltaY=firstLinePoint.y-lastLinePoint.y;slope.value[0]=deltaY/deltaX;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueSlopeDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueSlopeDouble",exc));}else{throw exc;}}
- return result;},WriteFile:function(str){try{}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"WriteFile",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside WriteFile",exc));}else{throw exc;}}},ReversePointsDouble2:function(pLowerLinePoints,vblCounter){try{var pResultPoints=new Array(vblCounter);var k=0;for(k=0;k<vblCounter;k++)
- pResultPoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLowerLinePoints[vblCounter-k-1]);for(k=0;k<vblCounter;k++)
- pLowerLinePoints[k]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pResultPoints[k]);pResultPoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ReversePointsDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ReversePointsDouble2",exc));}else{throw exc;}}
- return;},CalcTrueSlopeDoubleForRoutes:function(firstLinePoint,lastLinePoint,slope){try{var deltaX=0;var deltaY=0;deltaX=(firstLinePoint.x)-(lastLinePoint.x);if(Math.abs(deltaX)<2)
- return(false);deltaY=(firstLinePoint.y)-(lastLinePoint.y);if(slope.value===null)
- slope.value=Clazz.newArray(1,0);slope.value[0]=deltaY/deltaX;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueSlopeDoubleForRoutes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueSlopeDoubleForRoutes",exc));}else{throw exc;}}
- return true;},CalcTrueSlopeDouble2:function(firstLinePoint,lastLinePoint,slope){var result=new Boolean(true);try{var deltaX=0;var deltaY=0;deltaX=(firstLinePoint.x)-(lastLinePoint.x);if(deltaX===0){deltaX=1;result=new Boolean(false);}
- deltaY=(firstLinePoint.y)-(lastLinePoint.y);if(slope.value===null)
- slope.value=Clazz.newArray(1,0);slope.value[0]=deltaY/deltaX;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueSlopeDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueSlopeDouble2",exc));}else{throw exc;}}
- return result;},CalcTrueLinesDouble:function(nDistance,linePoint1,linePoint2,pdResult){try{var nTemp=0;var b=0;var delta=0;var m=new armyc2.c2sd.JavaLineArray.ref();nTemp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(linePoint1,linePoint2,m);pdResult.value=Clazz.newArray(6,0);if(nTemp===0){pdResult.value[3]=linePoint1.x+nDistance;pdResult.value[5]=linePoint1.x-nDistance;return 0;}else{b=linePoint2.y-m.value[0]*linePoint2.x;delta=Math.sqrt(m.value[0]*m.value[0]*((nDistance)*(nDistance))+((nDistance)*(nDistance)));pdResult.value[0]=m.value[0];pdResult.value[1]=b;pdResult.value[2]=m.value[0];pdResult.value[3]=b+delta;pdResult.value[4]=m.value[0];pdResult.value[5]=b-delta;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueLinesDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueLinesDouble",exc));}else{throw exc;}}
- return 1;},CalcTrueIntersectDouble2:function(m1,b1,m2,b2,bolVertical1,bolVertical2,X1,X2){var ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var x=0;var y=0;ptIntersect.x=X1;ptIntersect.y=X2;if(bolVertical1===0&&bolVertical2===0)
- return ptIntersect;if(bolVertical1===0&&bolVertical2===1){ptIntersect.x=X1;ptIntersect.y=m2*X1+b2;return ptIntersect;}
- if(bolVertical1===1&&bolVertical2===0){ptIntersect.x=X2;ptIntersect.y=m1*X2+b1;return ptIntersect;}
- if(m1!==m2){x=(b2-b1)/(m1-m2);y=(m1*x+b1);ptIntersect.x=x;ptIntersect.y=y;return ptIntersect;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueIntersectDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueIntersectDouble2",exc));}else{throw exc;}}
- return ptIntersect;},GetOffsetPointDouble:function(startLinePoint,endLinePoint,nOffset){var tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(startLinePoint);try{var dx=endLinePoint.x-startLinePoint.x;var dy=endLinePoint.y-startLinePoint.y;var dOffset=nOffset;var dHypotenuse=0;var dAngle=0;if(dx===0){if(dy>0){tempLinePoint.x=endLinePoint.x;tempLinePoint.y=endLinePoint.y+dOffset;}else{tempLinePoint.x=endLinePoint.x;tempLinePoint.y=endLinePoint.y-dOffset;}
- return tempLinePoint;}
- if(dy===0){if(dx>0){tempLinePoint.x=endLinePoint.x+dOffset;tempLinePoint.y=endLinePoint.y;}else{tempLinePoint.x=endLinePoint.x-dOffset;tempLinePoint.y=endLinePoint.y;}
- return tempLinePoint;}
- if(dy===0)
- dAngle=0;else
- dAngle=Math.atan(dx/dy)+1.5707963267948966;dHypotenuse=nOffset;if(endLinePoint.x>startLinePoint.x)
- tempLinePoint.x=endLinePoint.x+dHypotenuse*Math.abs(Math.cos(dAngle));else
- tempLinePoint.x=endLinePoint.x-dHypotenuse*Math.abs(Math.cos(dAngle));if(endLinePoint.y>startLinePoint.y)
- tempLinePoint.y=endLinePoint.y+dHypotenuse*Math.abs(Math.sin(dAngle));else
- tempLinePoint.y=endLinePoint.y-dHypotenuse*Math.abs(Math.sin(dAngle));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetOffsetPointDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetOffsetPointDouble",exc));}else{throw exc;}}
- return(tempLinePoint);},GetArcFEBADouble:function(dRadius,pLinePoints,vblCounter,pResultLinePoints){try{var dStartAngle=0;var dEndAngle=6.283185307179586;var dIncrement=(dEndAngle-dStartAngle)/25.0;var i=0;var j=0;var nArcCounter=0;var x=0;var y=0;var CenterLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pArcLinePoints=new Array(26);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pArcLinePoints);for(i=0;i<vblCounter;i++){CenterLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i]);armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(CenterLinePoint,dRadius,26,pArcLinePoints,0);for(j=0;j<26;j++){pResultLinePoints[nArcCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArcLinePoints[j]);nArcCounter++;}
- pResultLinePoints[nArcCounter-1].style=5;}
- pResultLinePoints[26*vblCounter-1].style=5;pArcLinePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetArcFEBADouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetArcFEBADouble",exc));}else{throw exc;}}
- return pResultLinePoints;},LineOfXPoints:function(pLinePoints){var xPoints=new java.util.ArrayList();try{var j=0;var k=0;var dist=0;var iterations=0;var frontPt=null;var backPt=null;var extendFrontAbove=null;var extendFrontBelow=null;var extendBackAbove=null;var extendBackBelow=null;var xPoint1=null;var xPoint2=null;for(j=0;j<pLinePoints.length-1;j++){dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pLinePoints[j+1]);iterations=Math.floor(((dist-5.0)/20.0));if(dist-iterations*20>10)
- iterations+=1;for(k=0;k<iterations;k++){frontPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*20-5);backPt=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pLinePoints[j],pLinePoints[j+1],k*20+5);extendFrontAbove=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],frontPt,2,5);extendFrontBelow=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],frontPt,3,5);extendBackAbove=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],backPt,2,5);extendBackBelow=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[j],pLinePoints[j+1],backPt,3,5);xPoints.add(extendFrontAbove);extendBackBelow.style=5;xPoints.add(extendBackBelow);xPoints.add(extendBackAbove);extendFrontBelow.style=5;xPoints.add(extendFrontBelow);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"LineOfXPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside LineOfXPoints",exc));}else{throw exc;}}
- return xPoints;},GetXFEBADouble:function(pLinePoints,dSize,vblCounter,pResultLinePoints){try{var j=0;var nXcounter=0;var upperLeftLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var lowerLeftLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var upperRightLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var lowerRightLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);for(j=0;j<vblCounter;j++){upperRightLinePoint.x=pLinePoints[j].x+dSize;upperRightLinePoint.y=pLinePoints[j].y+dSize;lowerRightLinePoint.x=pLinePoints[j].x+dSize;lowerRightLinePoint.y=pLinePoints[j].y-dSize;upperLeftLinePoint.x=pLinePoints[j].x-dSize;upperLeftLinePoint.y=pLinePoints[j].y+dSize;lowerLeftLinePoint.x=pLinePoints[j].x-dSize;lowerLeftLinePoint.y=pLinePoints[j].y-dSize;pResultLinePoints[nXcounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lowerLeftLinePoint);nXcounter++;pResultLinePoints[nXcounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(upperRightLinePoint);pResultLinePoints[nXcounter].style=5;nXcounter++;pResultLinePoints[nXcounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(upperLeftLinePoint);nXcounter++;pResultLinePoints[nXcounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lowerRightLinePoint);pResultLinePoints[nXcounter].style=5;nXcounter++;}
- return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetXFEBADouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetXFEBADouble",exc));}else{throw exc;}}},ReorderPoints:function(pLinePoints){try{var n=pLinePoints.length;var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[1]);for(var j=1;j<n-1;j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j+1]);pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);}
- pLinePoints[n-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ReorderPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ReorderPoints",exc));}else{throw exc;}}
- return;},CalcDistanceToLineDouble:function(pt1,pt2,pt3){var dResult=0;try{var m1=1;var b=0;var b1=0;var ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);var bolVertical=0;var m=new armyc2.c2sd.JavaLineArray.ref();bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt2,m);if(bolVertical!==0&&m.value[0]!==0){m1=-1/m.value[0];b=pt1.y-m.value[0]*pt1.x;b1=pt3.y-m1*pt3.x;ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m.value[0],b,m1,b1,1,1,ptIntersect.x,ptIntersect.y);}
- if(bolVertical!==0&&m.value[0]===0){ptIntersect.y=pt1.y;ptIntersect.x=pt3.x;}
- if(bolVertical===0){ptIntersect.y=pt3.y;ptIntersect.x=pt1.x;}
- dResult=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt3,ptIntersect);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CaclDistanceToLineDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcDistanceToLineDouble",exc));}else{throw exc;}}
- return dResult;},ExtendLineDouble:function(pt1,pt2,dist){var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var dOriginalDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);if(dOriginalDistance===0||dist===0)
- {return pt2;}
- pt3.x=(dOriginalDistance+dist)/dOriginalDistance*(pt2.x-pt1.x)+pt1.x;pt3.y=(dOriginalDistance+dist)/dOriginalDistance*(pt2.y-pt1.y)+pt1.y;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendLineDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendLineDouble",exc));}else{throw exc;}}
- return pt3;},ExtendAlongLineDouble2:function(pt1,pt2,dist){var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var dOriginalDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);if(dOriginalDistance===0||dist===0)
- return pt1;pt3.x=(dist/dOriginalDistance*(pt2.x-pt1.x)+pt1.x);pt3.y=(dist/dOriginalDistance*(pt2.y-pt1.y)+pt1.y);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendAlongLineDouble2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendAlongLineDouble2",exc));}else{throw exc;}}
- return pt3;},ExtendAlongLineDouble:function(){var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var pt1=arguments[0];var pt2=arguments[1];var dist=arguments[2];var dOriginalDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);if(dOriginalDistance===0||dist===0)
- return pt2;pt3.x=(dist/dOriginalDistance*(pt2.x-pt1.x)+pt1.x);pt3.y=(dist/dOriginalDistance*(pt2.y-pt1.y)+pt1.y);if(arguments.length===4)
- pt3.style=arguments[3];}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendAlongLineDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendAlongLineDouble",exc));}else{throw exc;}}
- return pt3;},ExtendLineAbove:function(pt1,pt2,pt3,d,X,Y,direction){try{var m=new armyc2.c2sd.JavaLineArray.ref();var dx=0;var dy=0;var bolVertical=0;X.value=Clazz.newArray(1,0);Y.value=Clazz.newArray(1,0);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt2,m);if(bolVertical===0)
- return 0;if(m.value[0]===0)
- {X.value[0]=pt3.x;if(direction===0)
- Y.value[0]=pt3.y-Math.abs(d);else
- Y.value[0]=pt3.y+Math.abs(d);return 1;}
- if(direction===0)
- dy=-Math.abs(d/(m.value[0]*Math.sqrt(1+1/(m.value[0]*m.value[0]))));else
- dy=Math.abs(d/(m.value[0]*Math.sqrt(1+1/(m.value[0]*m.value[0]))));dx=-m.value[0]*dy;X.value[0]=pt3.x+dx;Y.value[0]=pt3.y+dy;}
- catch(exc)
- {if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendLineAbove",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendLineAbove",exc));}else{throw exc;}}
- return 1;},ExtendLineLeft:function(pt1,pt2,pt3,d,X,Y,direction){try{var m=new armyc2.c2sd.JavaLineArray.ref();var dx=0;var dy=0;var bolVertical=0;X.value=Clazz.newArray(1,0);Y.value=Clazz.newArray(1,0);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt2,m);if(bolVertical!==0&&m.value[0]===0)
- return 0;if(bolVertical===0){Y.value[0]=pt3.y;if(direction===0)
- X.value[0]=pt3.x-Math.abs(d);else
- X.value[0]=pt3.x+Math.abs(d);return 1;}
- if(direction===0)
- dx=-Math.abs(d/Math.sqrt(1+1/(m.value[0]*m.value[0])));else
- dx=Math.abs(d/Math.sqrt(1+1/(m.value[0]*m.value[0])));dy=-(1/m.value[0])*dx;X.value[0]=pt3.x+dx;Y.value[0]=pt3.y+dy;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendLineLeft",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendLineLeft",exc));}else{throw exc;}}
- return 1;},CalcDirectionFromLine:function(pt0,pt1,pt2){var result=-1;try{var m2=0;var b1=0;var b2=0;var m1=new armyc2.c2sd.JavaLineArray.ref();var ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();if(pt0.x===pt1.x){if(pt2.x<pt0.x)
- return 0;else
- return 1;}
- if(pt0.y===pt1.y){if(pt2.y<pt0.y)
- return 2;else
- return 3;}
- armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m1);m2=-1/m1.value[0];b1=pt0.y-m1.value[0]*pt0.x;b2=pt2.y-m2*pt2.x;ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m1.value[0],b1,m2,b2,1,1,0,0);if(m1.value[0]>1){if(pt2.x<ptIntersect.x)
- return 0;else
- return 1;}else{if(pt2.y<ptIntersect.y)
- return 2;else
- return 3;}}catch(e){if(Clazz.instanceOf(e)){System.out.println(e.getMessage());}else{throw e;}}
- return result;},ExtendDirectedLineText:function(pt1,pt2,pt0,direction,d){var ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var X=new armyc2.c2sd.JavaLineArray.ref();var Y=new armyc2.c2sd.JavaLineArray.ref();ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);if(d<0){switch(direction){case 0:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_right;break;case 1:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_left;break;case 2:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_below;break;case 3:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_above;break;default:break;}
- d=Math.abs(d);}
- if(pt1.y===pt2.y){switch(direction){case 0:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_above;case 1:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_below;default:break;}}
- if(pt1.x===pt2.x){switch(direction){case 2:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_left;case 3:direction=armyc2.c2sd.JavaLineArray.lineutility.extend_right;default:break;}}
- switch(direction){case 0:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineLeft(pt1,pt2,pt0,d,X,Y,0);break;case 1:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineLeft(pt1,pt2,pt0,d,X,Y,1);break;case 2:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineAbove(pt1,pt2,pt0,d,X,Y,0);break;case 3:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineAbove(pt1,pt2,pt0,d,X,Y,1);break;default:break;}
- ptResult.x=X.value[0];ptResult.y=Y.value[0];}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendDirectedLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendDirectedLine",exc));}else{throw exc;}}
- return ptResult;},ExtendDirectedLine:function(){var pt1=arguments[0];var pt2=arguments[1];var pt0=arguments[2];var direction=arguments[3];var d=arguments[4];var ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);try{if(arguments.length===6)
- {ptResult.style=arguments[5];}
- var X=new armyc2.c2sd.JavaLineArray.ref();var Y=new armyc2.c2sd.JavaLineArray.ref();if(pt1.x===pt2.x){if(direction===2)
- direction=0;if(direction===3)
- direction=1;}
- if(pt1.y===pt2.y){if(direction===0)
- direction=2;if(direction===1)
- direction=3;}
- switch(direction){case 0:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineLeft(pt1,pt2,pt0,d,X,Y,0);break;case 1:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineLeft(pt1,pt2,pt0,d,X,Y,1);break;case 2:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineAbove(pt1,pt2,pt0,d,X,Y,0);break;case 3:armyc2.c2sd.JavaLineArray.lineutility.ExtendLineAbove(pt1,pt2,pt0,d,X,Y,1);break;}
- ptResult.x=X.value[0];ptResult.y=Y.value[0];}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendDirectedLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendDirectedLine",exc));}else{throw exc;}}
- return ptResult;},ExtendLine2Double:function(pt1,pt2,dist,styl){var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try
- {var dOriginalDistance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);pt3.x=pt2.x;pt3.y=pt2.y;if(dOriginalDistance>0)
- {pt3.x=(dOriginalDistance+dist)/dOriginalDistance*(pt2.x-pt1.x)+pt1.x;pt3.y=(dOriginalDistance+dist)/dOriginalDistance*(pt2.y-pt1.y)+pt1.y;pt3.style=styl;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendLine2Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendLine2Double",exc));}else{throw exc;}}
- return pt3;},ExtendAngledLine:function(pt0,pt1,pt2,alpha,d){var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var psi=Math.atan((pt1.y-pt0.y)/(pt1.x-pt0.x));var alpha1=3.141592653589793*alpha/180;var theta=psi+alpha1;var dx=d*Math.cos(theta);var dy=d*Math.sin(theta);pt.x=pt2.x+dx;pt.y=pt2.y+dy;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendAngledLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendAngledLine",exc));}else{throw exc;}}
- return pt;},GetQuadrantDouble:function(){var nQuadrant=-1;try{if(arguments.length===2)
- {var pt1=arguments[0];var pt2=arguments[1];if(pt2.x>=pt1.x&&pt2.y<=pt1.y)
- nQuadrant=1;if(pt2.x>=pt1.x&&pt2.y>=pt1.y)
- nQuadrant=2;if(pt2.x<=pt1.x&&pt2.y>=pt1.y)
- nQuadrant=3;if(pt2.x<=pt1.x&&pt2.y<=pt1.y)
- nQuadrant=4;}
- else if(arguments.length===4)
- {var x1=arguments[0];var y1=arguments[1];var x2=arguments[2];var y2=arguments[3];if(x2>=x1&&y2<=y1)
- nQuadrant=1;if(x2>=x1&&y2>=y1)
- nQuadrant=2;if(x2<=x1&&y2>=y1)
- nQuadrant=3;if(x2<=x1&&y2<=y1)
- nQuadrant=4;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetQuadrantDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetQuadrantDouble",exc));}else{throw exc;}}
- return nQuadrant;},GetPixelsMin:function(ptsSeize,vblCounter,x,y){try{var xmin=Infinity;var ymin=Infinity;var j=0;for(j=0;j<vblCounter;j++){if(ptsSeize[j].x<xmin)
- xmin=ptsSeize[j].x;if(ptsSeize[j].y<ymin)
- ymin=ptsSeize[j].y;}
- x.value=Clazz.newArray(1,0);y.value=Clazz.newArray(1,0);x.value[0]=xmin;y.value[0]=ymin;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetPixelsMin",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetPixelsMin",exc));}else{throw exc;}}
- return;},CalcClockwiseCenterDouble:function(ptsSeize){var dRadius=0;try{var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsSeize[0]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptsSeize[1]);var C=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);var midPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);var E=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);var ptYIntercept=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);var nQuadrant=1;var b=0;var b1=0;var b2=0;var dLength=0;var m=new armyc2.c2sd.JavaLineArray.ref();var bolVertical=0;var offsetX=new armyc2.c2sd.JavaLineArray.ref();var offsetY=new armyc2.c2sd.JavaLineArray.ref();var ptsTemp=new Array(2);ptsTemp[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);ptsTemp[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);armyc2.c2sd.JavaLineArray.lineutility.GetPixelsMin(ptsTemp,2,offsetX,offsetY);if(offsetX.value[0]<0)
- offsetX.value[0]=offsetX.value[0]-100;else
- offsetX.value[0]=0;midPt.x=(pt1.x+pt2.x)/2;midPt.y=(pt1.y+pt2.y)/2;dLength=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);dRadius=dLength/Math.sqrt(2);nQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pt1,pt2);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt1,pt2,m);if(bolVertical!==0&&m.value[0]!==0){b=pt1.y-m.value[0]*pt1.x;b1=midPt.y+(1/m.value[0])*midPt.x;b2=(-1/m.value[0])*offsetX.value[0]+b1;ptYIntercept.x=offsetX.value[0];ptYIntercept.y=b2;switch(nQuadrant){case 1:case 4:C=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midPt,dLength/2);break;case 2:case 3:C=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midPt,-dLength/2);break;default:break;}}
- if(bolVertical!==0&&m.value[0]===0){C.x=midPt.x;if(pt1.x<pt2.x)
- C.y=midPt.y+dLength/2;else
- C.y=midPt.y-dLength/2;}
- if(bolVertical===0){ptYIntercept.x=offsetX.value[0];ptYIntercept.y=midPt.y;switch(nQuadrant){case 1:case 4:C=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midPt,dLength/2);break;case 2:case 3:C=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,midPt,-dLength/2);break;default:break;}}
- E=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(C,pt1,50);ptsSeize[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(C);ptsSeize[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(E);ptsTemp=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcClockwiseCenterDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcClockwiseCenterDouble",exc));}else{throw exc;}}
- return dRadius;},GetArrowHead4Double:function(startLinePoint,endLinePoint,nBiSector,nBase,pResultLinePoints,styl){try{var j=0;var dy=(endLinePoint.y-startLinePoint.y);var dx=(endLinePoint.x-startLinePoint.x);var dSign=1.0;var AHBY=0;var AHBX=0;var AHBLY=0;var AHBLX=0;var AHBRY=0;var AHBRX=0;var dAngle=0;var dHypotenuse=0;var tempLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(startLinePoint);if(dy===0){if(dx>0)
- dAngle=3.141592653589793;else
- dAngle=0;}else
- dAngle=Math.atan(dx/dy)+1.5707963267948966;tempLinePoint.style=0;if(dx<=0.0&&dy<=0.0)
- dSign=-1.0;if(dx>=0.0&&dy<=0.0)
- dSign=-1.0;if(dx<=0.0&&dy>=0.0)
- dSign=1.0;if(dx>=0.0&&dy>=0.0)
- dSign=1.0;dHypotenuse=dSign*nBiSector;AHBX=endLinePoint.x+dHypotenuse*Math.cos(dAngle);AHBY=endLinePoint.y-dHypotenuse*Math.sin(dAngle);dHypotenuse=dSign*(nBase/2.0);AHBLX=AHBX-dHypotenuse*Math.sin(dAngle);AHBLY=AHBY-dHypotenuse*Math.cos(dAngle);AHBRX=AHBX+dHypotenuse*Math.sin(dAngle);AHBRY=AHBY+dHypotenuse*Math.cos(dAngle);tempLinePoint.x=Math.floor(AHBLX);tempLinePoint.y=Math.floor(AHBLY);pResultLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);pResultLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(endLinePoint);tempLinePoint.x=Math.floor(AHBRX);tempLinePoint.y=Math.floor(AHBRY);pResultLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tempLinePoint);switch(styl){case 0:for(j=0;j<2;j++)
- pResultLinePoints[j].style=0;pResultLinePoints[2].style=5;break;case 9:for(j=0;j<2;j++)
- pResultLinePoints[j].style=9;pResultLinePoints[2].style=10;break;case 18:for(j=0;j<2;j++)
- pResultLinePoints[j].style=18;pResultLinePoints[2].style=5;break;default:for(j=0;j<2;j++)
- pResultLinePoints[j].style=styl;pResultLinePoints[2].style=5;break;}
- return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetArrowhead4Double",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetArrowhead4Double",exc));}else{throw exc;}}},MidPointDouble:function(pt0,pt1,styl){var ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);try{ptResult.x=(pt0.x+pt1.x)/2;ptResult.y=(pt0.y+pt1.y)/2;ptResult.style=styl;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"MidPointDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MidPointDouble",exc));}else{throw exc;}}
- return ptResult;},RotateGeometryDoubleOrigin:function(pLinePoints,vblCounter,lAngle){try{var j=0;var dRotate=0;var dTheta=0;var dGamma=0;var x=0;var y=0;if(lAngle!==0){var pdCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();dRotate=lAngle*3.141592653589793/180;pdCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);for(j=0;j<vblCounter;j++){dGamma=3.141592653589793+Math.atan((pLinePoints[j].y-pdCenter.y)/(pLinePoints[j].x-pdCenter.x));if(pLinePoints[j].x>=pdCenter.x){dGamma=dGamma+3.141592653589793;}
- dTheta=dRotate+dGamma;y=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pdCenter)*Math.sin(dTheta);x=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pdCenter)*Math.cos(dTheta);pLinePoints[j].y=pdCenter.y+y;pLinePoints[j].x=pdCenter.x+x;}
- return pLinePoints;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"RotateGeometryDoubleOrigin",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside RotateGeometryDoubleOrigin",exc));}else{throw exc;}}
- return pLinePoints;},ExtendTrueLinePerpDouble:function(pt0,pt1,pt2,d,styl){var ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);try{var ptYIntercept=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);var m=new armyc2.c2sd.JavaLineArray.ref();var b=0;var b1=0;var nTemp=0;var offsetX=new armyc2.c2sd.JavaLineArray.ref();var offsetY=new armyc2.c2sd.JavaLineArray.ref();var pts=new Array(3);pts[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pts[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pts[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);armyc2.c2sd.JavaLineArray.lineutility.GetPixelsMin(pts,3,offsetX,offsetY);if(offsetX.value[0]<=0)
- offsetX.value[0]=offsetX.value[0]-100;else
- offsetX.value[0]=0;nTemp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);switch(nTemp){case 0:if(pt0.y<pt1.y){ptResult.x=pt2.x-d;ptResult.y=pt2.y;}else{ptResult.x=pt2.x+d;ptResult.y=pt2.y;}
- break;default:if(m.value[0]===0){ptResult.x=pt2.x;ptResult.y=pt2.y+d;}else{b=pt2.y+(1/m.value[0])*pt2.x;b1=(-1/m.value[0])*offsetX.value[0]+b;ptYIntercept.x=offsetX.value[0];ptYIntercept.y=b1;ptResult=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(ptYIntercept,pt2,d);}
- break;}
- ptResult.style=styl;pts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ExtendTrueLinePerpDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendTrueLinePerpDouble",exc));}else{throw exc;}}
- return ptResult;},CalcTrueIntersectDouble:function(m1,b1,m2,b2,p2,bolVerticalSlope1,bolVerticalSlope2,dWidth,lOrient,X,Y){try{var dWidth2=Math.abs(dWidth);var b=0;var dx=0;var dy=0;var m=0;X.value=Clazz.newArray(1,0);Y.value=Clazz.newArray(1,0);if(m1!==m2&&Math.abs(m1-m2)<=4.9E-324)
- m1=m2;if(b1!==b2&&Math.abs(b1-b2)<=4.9E-324)
- b1=b2;if(b1===b2&&m1+b1===m2+b2)
- m1=m2;if(bolVerticalSlope1===0&&bolVerticalSlope2===0){switch(lOrient){case 0:X.value[0]=p2.x-dWidth2;Y.value[0]=p2.y;break;case 3:X.value[0]=p2.x+dWidth2;Y.value[0]=p2.y;break;default:X.value[0]=p2.x;Y.value[0]=p2.y;break;}
- return 1;}
- if(bolVerticalSlope1===0&&bolVerticalSlope2!==0){switch(lOrient){case 0:case 1:X.value[0]=p2.x-dWidth2;Y.value[0]=m2*X.value[0]+b2;break;case 2:case 3:X.value[0]=p2.x+dWidth2;Y.value[0]=m2*X.value[0]+b2;break;default:X.value[0]=p2.x;Y.value[0]=p2.y;break;}
- return 1;}
- if(bolVerticalSlope2===0&&bolVerticalSlope1!==0){switch(lOrient){case 0:case 2:X.value[0]=p2.x-dWidth2;Y.value[0]=m1*(X.value[0])+b1;break;case 1:case 3:X.value[0]=p2.x+dWidth2;Y.value[0]=m1*(X.value[0])+b1;break;default:X.value[0]=p2.x;Y.value[0]=p2.y;break;}
- return 1;}
- if(m1===m2&&m1!==0){if(b1===b2){m=-1/m1;b=p2.y-m*p2.x;X.value[0]=(b2-b)/(m-m2);Y.value[0]=(m1*(X.value[0])+b1);return 1;}else{X.value[0]=p2.x;Y.value[0]=p2.y;return 1;}}
- if(m1===m2&&m1===0){switch(lOrient){case 0:case 1:X.value[0]=p2.x;Y.value[0]=p2.y-dWidth2;break;case 3:case 2:X.value[0]=p2.x;Y.value[0]=p2.y+dWidth2;break;default:X.value[0]=p2.x;Y.value[0]=p2.y;break;}
- return 1;}
- if(m1===m2&&b1===b2&&bolVerticalSlope1!==0&&bolVerticalSlope2!==0){switch(lOrient){case 0:if(m1<0){dy=m1*dWidth/Math.sqrt(1+m1*m1);dx=dy/m1;X.value[0]=p2.x+dx;Y.value[0]=p2.y+dy;}
- if(m1>0){dy=-m1*dWidth/Math.sqrt(1+m1*m1);dx=-dy/m1;X.value[0]=p2.x+dx;Y.value[0]=p2.y+dy;}
- break;case 3:if(m1<=0){dy=-m1*dWidth/Math.sqrt(1+m1*m1);dx=dy/m1;X.value[0]=p2.x+dx;Y.value[0]=p2.y+dy;}else{dy=m1*dWidth/Math.sqrt(1+m1*m1);dx=-dy/m1;X.value[0]=p2.x+dx;Y.value[0]=p2.y+dy;}
- break;default:X.value[0]=p2.x;Y.value[0]=p2.y;break;}
- return 1;}
- X.value[0]=(b2-b1)/(m1-m2);Y.value[0]=(m1*(X.value[0])+b1);return 1;}catch(exc){if(Clazz.instanceOf(exc)){X.value[0]=p2.x;Y.value[0]=p2.y;armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcTrueIntersectDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtendTrueIntersectDouble",exc));}else{throw exc;}}
- return 1;},CalcDistance2:function(x1,y1,x2,y2){var dResult=0;try{dResult=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));var xdist=Math.abs(x1-x2);var ydist=Math.abs(y1-y2);var max=xdist;if(ydist>xdist)
- max=ydist;if(dResult===0||Double.isInfinite(dResult)){if(max>0)
- dResult=max;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcDistance2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcDistance2",exc));}else{throw exc;}}
- return dResult;},GetSAAFRSegment:function(pLinePoints,lineType,dMRR,rev){try{var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt5=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var m=new armyc2.c2sd.JavaLineArray.ref();var bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[0],pLinePoints[1],m);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[0],pLinePoints[1],-dMRR,5);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendLine2Double(pLinePoints[1],pLinePoints[0],-dMRR,0);if(bolVertical!==0&&m.value[0]<1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[0],2,dMRR);pt2.style=0;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[1],2,dMRR);pt3.style=5;pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[0],3,dMRR);pt4.style=0;pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[1],3,dMRR);pt5.style=5;}else{pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[0],0,dMRR);pt2.style=0;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[1],0,dMRR);pt3.style=5;pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[0],1,dMRR);pt4.style=0;pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pLinePoints[0],pLinePoints[1],pLinePoints[1],1,dMRR);pt5.style=5;}
- pLinePoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pLinePoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);pLinePoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2);pLinePoints[3]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt3);pLinePoints[4]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt4);pLinePoints[5]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt5);pLinePoints[5].style=5;if(lineType===22223000)
- pLinePoints[0].style=5;if(rev===1)
- pLinePoints[0].style=5;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetSAAFRSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSAAFRSegment",exc));}else{throw exc;}}
- return;},ArcArrayDouble:function(pResultLinePoints,vblCounter,dRadius,linetype){try{var startangle=0;var endangle=0;var increment=0;var length=0;var M=0;var j;var numarcpts=0;var bolVertical=0;var m=new armyc2.c2sd.JavaLineArray.ref();var C=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pResultLinePoints[0]);var a=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pResultLinePoints[1]);var e=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pResultLinePoints[0]);var pArcLinePoints=null;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(a,e,m);if(bolVertical!==0)
- M=Math.atan(m.value[0]);else{if(a.y<e.y)
- M=-1.5707963267948966;else
- M=1.5707963267948966;}
- length=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(a,e);switch(linetype){case 23157000:startangle=M-1.5707963267948966;endangle=startangle+3.141592653589793;break;case 231100000:startangle=M-0.7853981633974483;endangle=startangle+1.5707963267948966;break;case 211400000:case 212600000:case 212500000:startangle=M;endangle=startangle+5.759586531581287;break;case 23173000:startangle=M;endangle=startangle+1.5707963267948966;break;case 211600000:case 211900000:case 212100000:startangle=M;endangle=startangle+5.899212871740834;break;default:startangle=0;endangle=6.283185307179586;break;}
- if(a.x<e.x){switch(linetype){case 211400000:case 212600000:case 212500000:startangle=M-3.141592653589793;endangle=startangle+5.759586531581287;break;case 211600000:case 211900000:case 212100000:startangle=M-3.141592653589793;endangle=startangle+5.899212871740834;break;case 23173000:startangle=M-3.141592653589793;endangle=startangle+1.5707963267948966;break;case 23157000:startangle=M-3.141592653589793+1.5707963267948966;endangle=startangle-3.141592653589793;break;case 231100000:startangle=M-3.141592653589793+0.7853981633974483;endangle=startangle-1.5707963267948966;break;default:break;}}
- numarcpts=26;pArcLinePoints=new Array(numarcpts);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pArcLinePoints);increment=(endangle-startangle)/(numarcpts-1);C.x=Math.floor((e.x-(dRadius/length)*(a.x-e.x)));C.y=Math.floor((e.y-(dRadius/length)*(a.y-e.y)));for(j=0;j<numarcpts;j++){pArcLinePoints[j].x=Math.floor((dRadius*Math.cos(startangle+j*increment)));pArcLinePoints[j].y=Math.floor((dRadius*Math.sin(startangle+j*increment)));}
- for(j=0;j<numarcpts;j++){pArcLinePoints[j].x+=C.x;pArcLinePoints[j].y+=C.y;}
- switch(linetype){case 211400000:case 212600000:case 212500000:case 211600000:case 211900000:case 212100000:case 23157000:case 23173000:case 231100000:for(j=0;j<numarcpts;j++)
- pResultLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArcLinePoints[j]);break;default:for(j=0;j<numarcpts;j++)
- pResultLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pArcLinePoints[j]);break;}
- pArcLinePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"ArcArrayDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ArcArrayDouble",exc));}else{throw exc;}}
- return pResultLinePoints;},CalcCircleDouble:function(Center,radius,numpts,CirclePoints,styl){try{var j=0;var dSegmentAngle=6.283185307179586/numpts;var x=0;var y=0;for(j=0;j<numpts-1;j++){x=Center.x+(radius*Math.cos(j*dSegmentAngle));y=Center.y+(radius*Math.sin(j*dSegmentAngle));CirclePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);CirclePoints[j].style=styl;}
- CirclePoints[numpts-1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(CirclePoints[0]);switch(styl){case 0:CirclePoints[numpts-1].style=0;break;case 9:CirclePoints[numpts-1].style=10;break;case 11:CirclePoints[numpts-1].style=12;break;default:CirclePoints[numpts-1].style=5;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcCircleDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcCircleDouble",exc));}else{throw exc;}}
- return;},CalcCircleShape:function(Center,radius,numpts,CirclePoints,styl){var shape;if(styl===9)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);else
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.set_Style(styl);try{var j=0;armyc2.c2sd.JavaLineArray.lineutility.CalcCircleDouble(Center,radius,numpts,CirclePoints,styl);shape.moveTo(CirclePoints[0]);for(j=1;j<numpts;j++){shape.lineTo(CirclePoints[j]);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcCircleShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcCircleShape",exc));}else{throw exc;}}
- return shape;},GetSquallCurve:function(StartPt,EndPt,pSquallPts,sign,amplitude,quantity){try{var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(StartPt,EndPt);var ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var j=0;for(j=0;j<quantity;j++){ptTemp=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(EndPt,StartPt,-dist*j/quantity);pSquallPts[j].x=ptTemp.x;pSquallPts[j].y=ptTemp.y+amplitude*sign*Math.sin(j*180/quantity*3.141592653589793/180);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetSquallShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GeSquallShape",exc));}else{throw exc;}}
- return;},GetSquallSegment:function(StartPt,EndPt,pSquallPts,sign,amplitude,quantity,length){var counter=0;try{var StartCurvePt;var EndCurvePt;var pSquallPts2=new Array(quantity);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(StartPt,EndPt);var numCurves=Math.floor((dist/length));var j=0;var k=0;var EndPt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var angle=Math.atan((StartPt.y-EndPt.y)/(StartPt.x-EndPt.x));var lAngle=Math.floor(((57.29577951308232)*angle));armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pSquallPts2);if(StartPt.x<EndPt.x)
- EndPt2.x=StartPt.x+dist;else
- EndPt2.x=StartPt.x-dist;EndPt2.y=StartPt.y;EndCurvePt=StartPt;for(j=0;j<numCurves;j++){StartCurvePt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(EndPt2,StartPt,-(j*length));EndCurvePt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(EndPt2,StartPt,-((j+1)*length));armyc2.c2sd.JavaLineArray.lineutility.GetSquallCurve(StartCurvePt,EndCurvePt,pSquallPts2,sign.value[0],amplitude,quantity);for(k=0;k<quantity;k++){pSquallPts[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pSquallPts2[k]);counter++;}
- sign.value[0]=-sign.value[0];}
- if(numCurves===0){pSquallPts[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(StartPt);counter++;pSquallPts[counter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(EndPt);counter++;}
- armyc2.c2sd.JavaLineArray.lineutility.RotateGeometryDoubleOrigin(pSquallPts,counter,lAngle);pSquallPts2=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetSquallSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSquallSegment",exc));}else{throw exc;}}
- return counter;},PointInBounds2:function(pt,ul,lr){try{var maxX=lr.x;var minX=ul.x;var maxY=lr.y;var minY=ul.y;if(pt.x<=maxX&&pt.x>=minX&&pt.y<=maxY&&pt.y>=minY)
- return 1;else
- return 0;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"PointInBounds2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside PointInBounds2",exc));}else{throw exc;}}
- return 1;},intersectSegment:function(pt0,pt1,sidePt0,sidePt1){var pt=null;try{if(pt0.x===pt1.x){return null;}
- var m=(pt1.y-pt0.y)/(pt1.x-pt0.x);var dx=0;var dy=0;var x=0;var y=0;var upper=null;var lower=null;var left=null;var right=null;var bolVertical=new Boolean(false);if(sidePt0.x===sidePt1.x){bolVertical=new Boolean(true);if(sidePt0.y<sidePt1.y){upper=sidePt0;lower=sidePt1;}else{upper=sidePt1;lower=sidePt0;}}else{if(sidePt0.x<sidePt1.x){left=sidePt0;right=sidePt1;}else{left=sidePt1;right=sidePt0;}}
- if((bolVertical).booleanValue()){dx=upper.x-pt0.x;dy=m*dx;x=upper.x;y=pt0.y+dy;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);if(pt0.x<=pt.x&&pt.x<=pt1.x){if(upper.y<=pt.y&&pt.y<=lower.y){return pt;}}else if(pt0.x>=pt.x&&pt.x>=pt1.x){if(upper.y<=pt.y&&pt.y<=lower.y){return pt;}}}else{dy=left.y-pt0.y;dx=dy/m;x=pt0.x+dx;y=left.y;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);if(pt0.y<=pt.y&&pt.y<=pt1.y){if(left.x<=pt.x&&pt.x<=right.x){return pt;}}else if(pt0.y>=pt.y&&pt.y>=pt1.y){if(left.x<=pt.x&&pt.x<=right.x){return pt;}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"intersectSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside intersectSegment",exc));}else{throw exc;}}
- return null;},BoundOneSegment:function(pt0,pt1,ul,lr){var line=new Array(2);try{if(pt0.y<ul.y&&pt1.y<ul.y){return null;}
- if(pt0.y>lr.y&&pt1.y>lr.y){return null;}
- if(pt0.x<ul.x&&pt1.x<ul.x){return null;}
- if(pt0.x>lr.x&&pt1.x>lr.x){return null;}
- var bolVertical=new Boolean(false);armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(line);if(pt0.x===pt1.x){bolVertical=new Boolean(true);}
- if(bolVertical.booleanValue()){line[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);if(line[0].y<ul.y){line[0].y=ul.y;}
- if(line[0].y>lr.y){line[0].y=lr.y;}
- line[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);if(line[1].y<ul.y){line[1].y=ul.y;}
- if(line[1].y>lr.y){line[1].y=lr.y;}
- return line;}
- var dx=0;var dy=0;var x=0;var y=0;var m=(pt1.y-pt0.y)/(pt1.x-pt0.x);var side0Intersect=new Boolean(false);var side1Intersect=new Boolean(false);var side2Intersect=new Boolean(false);var side3Intersect=new Boolean(false);var ur=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lr.x,ul.y);var ll=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ul.x,lr.y);var pt0Intersect=null;if(armyc2.c2sd.JavaLineArray.lineutility.PointInBounds2(pt0,ul,lr)===1){pt0Intersect=pt0;}
- if(pt0Intersect===null){pt0Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt0,pt1,ll,ul);side0Intersect=new Boolean(true);}
- if(pt0Intersect===null){pt0Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt0,pt1,ul,ur);side1Intersect=new Boolean(true);}
- if(pt0Intersect===null){pt0Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt0,pt1,ur,lr);side2Intersect=new Boolean(true);}
- if(pt0Intersect===null){pt0Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt0,pt1,ll,lr);side3Intersect=new Boolean(true);}
- var pt1Intersect=null;if(armyc2.c2sd.JavaLineArray.lineutility.PointInBounds2(pt1,ul,lr)===1){pt1Intersect=pt1;}
- if(pt1Intersect===null&&side0Intersect.booleanValue()===false){pt1Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt1,pt0,ll,ul);}
- if(pt1Intersect===null&&side1Intersect.booleanValue()===false){pt1Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt1,pt0,ul,ur);}
- if(pt1Intersect===null&&side2Intersect.booleanValue()===false){pt1Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt1,pt0,ur,lr);}
- if(pt1Intersect===null&&side3Intersect.booleanValue()===false){pt1Intersect=armyc2.c2sd.JavaLineArray.lineutility.intersectSegment(pt1,pt0,ll,lr);}
- if(pt0Intersect!==null&&pt1Intersect!==null){line[0]=pt0Intersect;line[1]=pt1Intersect;}else{line=null;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"BoundOneSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside BoundOneSegment",exc));}else{throw exc;}}
- return line;},GetDitchSpikeDouble:function(pLinePoints,nOldCounter,bWayIs,linetype){var nSpikeCounter=0;try{var nNumberOfSegments=0;var lCircleCounter=0;var bolVertical=0;var nTemp=0;var i;var j;var dPrinter=1.0;var dIntLocation1x=0;var dIntLocation2x=0;var dIntLocation1y=0;var dIntLocation2y=0;var r=0;var s=0;var use=0;var length=0;var k=0;var bint=0;var pdAnswer=new armyc2.c2sd.JavaLineArray.ref();var m=new armyc2.c2sd.JavaLineArray.ref();var UpperLinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var Lower1LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var Lower2LinePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var a=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var b=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[0]);var pCirclePoints=new Array(pLinePoints.length);var averagePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var lastAveragePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pTempLinePoints=null;var minLength=24;pTempLinePoints=new Array(nOldCounter);for(j=0;j<nOldCounter;j++){pTempLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[j]);}
- var basePoints=new java.util.ArrayList();armyc2.c2sd.JavaLineArray.lineutility.InitializePOINT2Array(pCirclePoints);nSpikeCounter=nOldCounter;for(i=0;i<nOldCounter-1;i++){if(linetype===23132000&&i===0)
- minLength=38;nTemp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueLinesDouble(15*Math.floor(dPrinter),pLinePoints[i],pLinePoints[i+1],pdAnswer);r=pdAnswer.value[3];s=pdAnswer.value[5];length=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[i],pLinePoints[i+1]);bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pLinePoints[i],pLinePoints[i+1],m);nNumberOfSegments=Math.floor(((length-1)/(12*dPrinter)));if(length>minLength*dPrinter){if(bWayIs!==0){if(pLinePoints[i].x<=pLinePoints[i+1].x){use=r;}
- if(pLinePoints[i].x>=pLinePoints[i+1].x){use=s;}}else{if(pLinePoints[i].x<=pLinePoints[i+1].x){use=s;}
- if(pLinePoints[i].x>=pLinePoints[i+1].x){use=r;}}
- for(j=1;j<=nNumberOfSegments;j++){k=j;a=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i]);b=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i+1]);if(j>1){dIntLocation1x=dIntLocation2x;}else{dIntLocation1x=pLinePoints[i].x+((k*12.0-12)*dPrinter/length)*(pLinePoints[i+1].x-pLinePoints[i].x);}
- if(j>1){dIntLocation1y=dIntLocation2y;}else{dIntLocation1y=pLinePoints[i].y+((k*12.0-6.0)*dPrinter/length)*(pLinePoints[i+1].y-pLinePoints[i].y);}
- dIntLocation2x=pLinePoints[i].x+((k*12.0+6.0)*dPrinter/length)*(pLinePoints[i+1].x-pLinePoints[i].x);dIntLocation2y=pLinePoints[i].y+((k*12.0+6.0)*dPrinter/length)*(pLinePoints[i+1].y-pLinePoints[i].y);if(m.value[0]!==0&&bolVertical!==0){bint=(dIntLocation1y+dIntLocation2y)/2.0+(1/m.value[0])*(dIntLocation1x+dIntLocation2x)/2.0;UpperLinePoint=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m.value[0],use,-1/m.value[0],bint,1,1,pLinePoints[0].x,pLinePoints[0].y);}
- if(bolVertical===0){if(dIntLocation1y<dIntLocation2y){UpperLinePoint.y=Math.floor(dIntLocation1y)+Math.floor((length/nNumberOfSegments/2));}else{UpperLinePoint.y=Math.floor(dIntLocation1y)-Math.floor((length/nNumberOfSegments/2));}
- if(pLinePoints[i].y<pLinePoints[i+1].y){UpperLinePoint.x=Math.floor(dIntLocation1x)+Math.floor((length/nNumberOfSegments));}else{UpperLinePoint.x=Math.floor(dIntLocation1x)-Math.floor((length/nNumberOfSegments));}}
- if(m.value[0]===0&&bolVertical!==0){if(dIntLocation1x<dIntLocation2x){UpperLinePoint.x=Math.floor(dIntLocation1x)+Math.floor((length/nNumberOfSegments/2));}else{UpperLinePoint.x=Math.floor(dIntLocation1x)-Math.floor((length/nNumberOfSegments/2));}
- if(pLinePoints[i+1].x<pLinePoints[i].x){UpperLinePoint.y=Math.floor(dIntLocation1y)+Math.floor((length/nNumberOfSegments));}else{UpperLinePoint.y=Math.floor(dIntLocation1y)-Math.floor((length/nNumberOfSegments));}}
- Lower1LinePoint.x=dIntLocation1x;Lower1LinePoint.y=dIntLocation1y;Lower2LinePoint.x=dIntLocation2x;Lower2LinePoint.y=dIntLocation2y;pLinePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(Lower1LinePoint);if(linetype===23131200||linetype===23132000){pLinePoints[nSpikeCounter].style=9;}
- if(j%2===1&&linetype===23132000)
- pLinePoints[nSpikeCounter].style=5;nSpikeCounter++;pLinePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(UpperLinePoint);if(linetype===23131200||linetype===23132000){pLinePoints[nSpikeCounter].style=9;}
- if(j%2===1&&linetype===23132000)
- pLinePoints[nSpikeCounter].style=5;nSpikeCounter++;pLinePoints[nSpikeCounter]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(Lower2LinePoint);if(linetype===23131200||linetype===23132000){pLinePoints[nSpikeCounter].style=10;}
- if(j%2===1&&linetype===23132000)
- pLinePoints[nSpikeCounter].style=5;nSpikeCounter++;if(linetype===23132000){if(j%2===0){averagePoint=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(Lower1LinePoint,Lower2LinePoint,0);averagePoint=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(averagePoint,UpperLinePoint,0);}else if(j===1){averagePoint=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(Lower2LinePoint,Lower1LinePoint,5);averagePoint=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(averagePoint,UpperLinePoint,0);}}
- if(j>1&&j<nNumberOfSegments){basePoints.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(Lower1LinePoint));}else if(j===1){basePoints.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i]));}else if(j===nNumberOfSegments){basePoints.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints[i+1]));basePoints.get(basePoints.size()-1).style=5;}
- if(linetype===23132000&&j>1){if(j%2===0){pCirclePoints[lCircleCounter]=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(averagePoint,lastAveragePoint,20);lCircleCounter++;}}
- if(j<nNumberOfSegments&&linetype===23132000){if(j===1||j%2===0){lastAveragePoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(averagePoint);}}}}else{pLinePoints[nSpikeCounter].x=pLinePoints[i].x;pLinePoints[nSpikeCounter].y=pLinePoints[i].y;pLinePoints[nSpikeCounter].style=0;nSpikeCounter++;pLinePoints[nSpikeCounter].x=pLinePoints[i+1].x;pLinePoints[nSpikeCounter].y=pLinePoints[i+1].y;pLinePoints[nSpikeCounter].style=5;nSpikeCounter++;}}
- for(j=0;j<nOldCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pTempLinePoints[nOldCounter-j-1]);pLinePoints[j].style=5;}
- if(pLinePoints[nSpikeCounter-1].style===0)
- pLinePoints[nSpikeCounter-1].style=5;for(j=nSpikeCounter;j<nSpikeCounter+basePoints.size();j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(basePoints.get(j-nSpikeCounter));if(pLinePoints[j].style!==5)
- pLinePoints[j].style=0;}
- nSpikeCounter+=basePoints.size();if(linetype===23132000){pLinePoints[nSpikeCounter-1].style=5;for(j=nSpikeCounter;j<nSpikeCounter+lCircleCounter;j++){pLinePoints[j]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pCirclePoints[j-nSpikeCounter]);pLinePoints[j].style=20;}
- nSpikeCounter+=lCircleCounter;}
- pdAnswer=null;pCirclePoints=null;pTempLinePoints=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"GetDitchSpikeDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetDitchSpikeDouble",exc));}else{throw exc;}}
- return nSpikeCounter;},MoveChannelPixels:function(pLinePoints){try{if(pLinePoints===null||pLinePoints.length<=0)
- return;var pixels=Clazz.newArray(pLinePoints.length*2,0);var bolNoRepeats;var j;var k=0;var x1;var y1;var x2;var y2;var count=pLinePoints.length;for(j=0;j<count;j++){pixels[k++]=pLinePoints[j].x;pixels[k++]=pLinePoints[j].y;}
- bolNoRepeats=false;do{bolNoRepeats=true;for(j=0;j<count-1;j++){x1=pixels[2*j];y1=pixels[2*j+1];x2=pixels[2*j+2];y2=pixels[2*j+3];if(x1===x2&&y1===y2){bolNoRepeats=false;pixels[2*j+2]=Math.floor(x2)+1;break;}}}while(bolNoRepeats===false);k=0;for(j=0;j<count;j++){pLinePoints[j].x=pixels[k++];pLinePoints[j].y=pixels[k++];}
- return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"MoveChannelPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MoveChannelPixels",exc));}else{throw exc;}}},moveSingleCPixels:function(linetype,pLinePoints){try{switch(linetype){case 231117100:break;default:return;}
- if(pLinePoints.length>1){if(pLinePoints[1].y===pLinePoints[0].y)
- pLinePoints[1].y++;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"MoveSingleCPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MoveSingleCPixels",exc));}else{throw exc;}}},RotateGeometryDouble:function(pLinePoints,vblCounter,lAngle){try{var j=0;var dRotate=0;var dTheta=0;var dGamma=0;var x=0;var y=0;if(lAngle!==0){var pdCenter;dRotate=lAngle*3.141592653589793/180;pdCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble(pLinePoints,vblCounter);for(j=0;j<vblCounter;j++){if(pLinePoints[j].x===pdCenter.x){if((pLinePoints[j].y>pdCenter.y))
- dGamma=4.71238898038469;else
- dGamma=1.5707963267948966;}else
- dGamma=3.141592653589793+Math.atan((pLinePoints[j].y-pdCenter.y)/(pLinePoints[j].x-pdCenter.x));if(pLinePoints[j].x>=pdCenter.x)
- dGamma=dGamma+3.141592653589793;dTheta=dRotate+dGamma;y=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pdCenter)*Math.sin(dTheta);x=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints[j],pdCenter)*Math.cos(dTheta);pLinePoints[j].y=pdCenter.y+y;pLinePoints[j].x=pdCenter.x+x;}
- return;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"RotateGeometryDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside RotateGeometryDouble",exc));}else{throw exc;}}
- return;},adjustCATKBYFIREControlPoint:function(linetype,pLinePoints,dist){try{if(linetype!==21710000)
- return;var dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pLinePoints.get(0),pLinePoints.get(1));if(dist2<=dist)
- return;var pt=null;var count=pLinePoints.size();var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints.get(0));var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints.get(1));var controlPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pLinePoints.get(count-1));var pt4=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(pt0,pt1,pt1,controlPt);pt=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt4,controlPt,dist);pLinePoints.set(count-1,pt);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"adjustCATKBYFIREControlPoint",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside adjustCATKBYFIREControlPoint",exc));}else{throw exc;}}
- return;},PointRelativeToLine:function(){var ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var pt0=arguments[0];var pt1=arguments[1];var atPoint=null;var ptRelative=null;if(arguments.length===3)
- {ptRelative=arguments[2];var bolVertical=0;var m=new armyc2.c2sd.JavaLineArray.ref();var midPt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);var b1=0;var b2=0;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical===0){ptResult.x=ptRelative.x;ptResult.y=midPt.y;}
- if(bolVertical!==0&&m.value[0]===0){ptResult.x=midPt.x;ptResult.y=ptRelative.y;}
- if(bolVertical!==0&&m.value[0]!==0){b1=midPt.y+(1/m.value[0])*midPt.x;b2=ptRelative.y-m.value[0]*ptRelative.x;ptResult=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b1,m.value[0],b2,1,1,0,0);}}
- else if(arguments.length===4)
- {atPoint=arguments[2];ptRelative=arguments[3];bolVertical=0;m=new armyc2.c2sd.JavaLineArray.ref();b1=0;b2=0;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical===0){ptResult.x=ptRelative.x;ptResult.y=atPoint.y;}
- if(bolVertical!==0&&m.value[0]===0){ptResult.x=atPoint.x;ptResult.y=ptRelative.y;}
- if(bolVertical!==0&&m.value[0]!==0){b1=atPoint.y+(1/m.value[0])*atPoint.x;b2=ptRelative.y-m.value[0]*ptRelative.x;ptResult=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b1,m.value[0],b2,1,1,0,0);}}}
- catch(exc)
- {if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"PointRelativeToLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside PointRelativeToLine",exc));}else{throw exc;}}
- return ptResult;},LineRelativeToLine:function(pt0,pt1,ptRelative,pt2,pt3){try{var bolVertical=0;var m=new armyc2.c2sd.JavaLineArray.ref();var b1=0;var b2=0;var pt2Temp=null;var pt3Temp=null;bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble(pt0,pt1,m);if(bolVertical===0){pt2.x=ptRelative.x;pt2.y=pt0.y;pt3.x=ptRelative.x;pt3.y=pt1.y;}
- if(bolVertical!==0&&m.value[0]===0){pt2.x=pt0.x;pt2.y=ptRelative.y;pt3.x=pt1.x;pt3.y=ptRelative.y;}
- if(bolVertical!==0&&m.value[0]!==0){b1=pt0.y+(1/m.value[0])*pt0.x;b2=ptRelative.y-m.value[0]*ptRelative.x;pt2Temp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b1,m.value[0],b2,1,1,0,0);b1=pt1.y+(1/m.value[0])*pt1.x;pt3Temp=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(-1/m.value[0],b1,m.value[0],b2,1,1,0,0);pt2.x=pt2Temp.x;pt2.y=pt2Temp.y;pt3.x=pt3Temp.x;pt3.y=pt3Temp.y;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"LineRelativeToLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside LineRelativeToLine",exc));}else{throw exc;}}
- return;},CalcMBR:function(pLinePoints,numpts,ulx,uly,lrx,lry){try{var j=0;ulx.value=Clazz.newArray(1,0);uly.value=Clazz.newArray(1,0);lrx.value=Clazz.newArray(1,0);lry.value=Clazz.newArray(1,0);ulx.value[0]=1.7976931348623157E308;uly.value[0]=1.7976931348623157E308;lrx.value[0]=-1.7976931348623157E308;lry.value[0]=-1.7976931348623157E308;for(j=0;j<numpts;j++){if(pLinePoints[j].x>lrx.value[0])
- lrx.value[0]=pLinePoints[j].x;if(pLinePoints[j].y>lry.value[0])
- lry.value[0]=pLinePoints[j].y;if(pLinePoints[j].x<ulx.value[0])
- ulx.value[0]=pLinePoints[j].x;if(pLinePoints[j].y<uly.value[0])
- uly.value[0]=pLinePoints[j].y;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcMBR",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcMBR",exc));}else{throw exc;}}
- return;},CalcMBRPoints:function(pLinePoints,numpts,ul,lr){try{var j=0;ul.x=1.7976931348623157E308;ul.y=1.7976931348623157E308;lr.x=-1.7976931348623157E308;lr.y=-1.7976931348623157E308;for(j=0;j<numpts;j++){if(pLinePoints[j].x>lr.x)
- lr.x=pLinePoints[j].x;if(pLinePoints[j].y>lr.y)
- lr.y=pLinePoints[j].y;if(pLinePoints[j].x<ul.x)
- ul.x=pLinePoints[j].x;if(pLinePoints[j].y<ul.y)
- ul.y=pLinePoints[j].y;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"CalcMBRPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcMBRPoints",exc));}else{throw exc;}}
- return;},MBRDistance:function(pLinePoints,numpts){var result=0;try{var ulx=new armyc2.c2sd.JavaLineArray.ref();var uly=new armyc2.c2sd.JavaLineArray.ref();var lrx=new armyc2.c2sd.JavaLineArray.ref();var lry=new armyc2.c2sd.JavaLineArray.ref();armyc2.c2sd.JavaLineArray.lineutility.CalcMBR(pLinePoints,numpts,ulx,uly,lrx,lry);result=Math.sqrt((lrx.value[0]-ulx.value[0])*(lrx.value[0]-ulx.value[0])+(lry.value[0]-uly.value[0])*(lry.value[0]-uly.value[0]));var xdist=Math.abs(lrx.value[0]-ulx.value[0]);var ydist=Math.abs(lry.value[0]-uly.value[0]);var max=xdist;if(ydist>xdist)
- max=ydist;if(result===0||Double.isInfinite(result)){if(max>0)
- result=max;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"MBRDistance",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MBRDistance",exc));}else{throw exc;}}
- return result;},Reverse2Points:function(pt1,pt2){try{var tempPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();tempPt.x=pt1.x;tempPt.y=pt1.y;pt1.x=pt2.x;pt1.y=pt2.y;pt2.x=tempPt.x;pt2.y=tempPt.y;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"Reverse2Points",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside Reverse2Points",exc));}else{throw exc;}}
- return;},createStrokedShape:function(shape){var newshape=new armyc2.c2sd.graphics2d.GeneralPath();try{var coords=Clazz.newArray(6,0);for(var i=shape.getPathIterator(null);!i.isDone();i.next()){var type=i.currentSegment(coords);switch(type){case 0:newshape.moveTo(coords[0],coords[1]);break;case 1:newshape.lineTo(coords[0],coords[1]);break;case 2:newshape.quadTo(coords[0],coords[1],coords[2],coords[3]);break;case 3:newshape.curveTo(coords[0],coords[1],coords[2],coords[3],coords[4],coords[5]);break;case 4:newshape.closePath();break;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaLineArray.lineutility._className,"createStrokedShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside createStrokedShape",exc));}else{throw exc;}}
- return newshape;},setPOINT2:function(){var pt2=new armyc2.c2sd.JavaLineArray.POINT2();pt2.x=0;pt2.y=0;pt2.segment=0;pt2.style=0;if(arguments.length===1)
- {pt2.x=arguments[0].x;pt2.y=arguments[0].y;pt2.segment=arguments[0].segment;pt2.style=arguments[0].style;}
- else if(arguments.length===2)
- {pt2.x=arguments[0];pt2.y=arguments[1];}
- else if(arguments.length===3)
- {pt2.x=arguments[0];pt2.y=arguments[1];pt2.style=arguments[2];}
- else if(arguments.length===4)
- {pt2.x=arguments[0];pt2.y=arguments[1];pt2.segment=arguments[2];pt2.style=arguments[3];}
- return pt2;},getExteriorPoints:function(pLinePoints,vblCounter,lineType,interior){var j;var index;var pt0;var pt1;var pt2;var m01=new armyc2.c2sd.JavaLineArray.ref();var m12=new armyc2.c2sd.JavaLineArray.ref();var direction;var intersectPt;var intersectPoints=new java.util.ArrayList();var b01;var b12;var dist=pLinePoints[0].style;for(j=0;j<vblCounter;j++){if(j===0||j===vblCounter-1){pt0=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[vblCounter-2]);pt1=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[0]);pt2=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[1]);}else{pt0=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[j-1]);pt1=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[j]);pt2=new armyc2.c2sd.JavaLineArray.POINT2(pLinePoints[j+1]);}
- if(pt1.style>0){dist=pt1.style;}
- var pt00;var pt01;var pt10;var pt11;index=j-1;if(index<0){index=vblCounter-1;}
- var pts=new Array(pLinePoints.length);for(var k=0;k<pLinePoints.length;k++){pts[k]=pLinePoints[k];}
- direction=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pt0,pt1,pts,vblCounter,index,lineType);if(interior===true){switch(direction){case 0:direction=1;break;case 1:direction=0;break;case 2:direction=3;break;case 3:direction=2;break;default:break;}}
- pt00=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,direction,dist);pt01=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,direction,dist);index=j;if(j===vblCounter-1){index=0;}
- direction=armyc2.c2sd.JavaLineArray.arraysupport.GetInsideOutsideDouble2(pt1,pt2,pts,vblCounter,index,lineType);if(interior===true){switch(direction){case 0:direction=1;break;case 1:direction=0;break;case 2:direction=3;break;case 3:direction=2;break;default:break;}}
- pt10=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt1,direction,dist);pt11=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt2,pt2,direction,dist);if(pt0.x===pt1.x&&pt1.x===pt2.x){intersectPt=new armyc2.c2sd.JavaLineArray.POINT2(pt01);intersectPoints.add(intersectPt);continue;}
- armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(pt00,pt01,m01);armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(pt10,pt11,m12);if(m01.value[0]===m12.value[0]){intersectPt=new armyc2.c2sd.JavaLineArray.POINT2(pt01);intersectPoints.add(intersectPt);continue;}
- b01=pt01.y-m01.value[0]*pt01.x;b12=pt11.y-m12.value[0]*pt11.x;intersectPt=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueIntersectDouble2(m01.value[0],b01,m12.value[0],b12,1,1,0,0);intersectPoints.add(intersectPt);}
- for(j=0;j<intersectPoints.size();j++){pLinePoints[j]=intersectPoints.get(j);}
- return;},extend_left:0,extend_right:1,extend_above:2,extend_below:3,_className:"lineutility"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaLineArray=armyc2.c2sd.JavaLineArray||{};armyc2.c2sd.JavaLineArray.ref=function()
- {this.value=null;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.Modifier2=function(){this.textPath=new Array(2);this.textID=null;this.featureID=null;this.text=null;this.iteration=0;this.justify=0;this.type=0;this.lineFactor=0;this.isIntegral=false;this.fitsMBR=true;this.get_TextPath=function(){return this.textPath;};this.set_TextPath=function(value){this.textPath=value;};this.set_IsIntegral=function(value){this.isIntegral=value;};this.get_IsIntegral=function(){return this.isIntegral;};};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetCenterLabel=function(tg)
- {var label="";try
- {switch(tg.get_LineType())
- {case 22221000:label="AC";break;case 212100000:case 212300000:case 212300001:label="S";break;case 211900000:label="R";break;case 211700000:label="P";break;case 211600000:label="O";break;case 211400000:label="I";break;case 211100000:label="F";break;case 211000000:label="D";break;case 21400000:case 21500000:label="C";break;case 21200000:case 21300000:label="B";break;case 212600000:label="C/K";break;case 212500000:label="C/S";break;case 23180000:label="UXO";break;case 212000000:label="R";break;case 22623000:case 22623001:label="BL ";break;case 22612000:case 22612001:label="HL ";break;case 22124000:label="PL ";break;case 22125000:label="LL";break;case 212210000:case 212210001:label="S";break;case 212230000:case 212230001:label="C";break;case 212220000:case 212220001:label="G";break;case 211800000:label="RIP";break;case 212400000:label="W";break;case 212410000:label="WP";break;case 21700000:case 21710000:label="CATK";break;case 22122000:label="FLOT";break;case 22132000:label="AA";break;case 22133000:label="EA";break;case 22135000:label="DZ";break;case 22136000:label="EZ";break;case 22137000:label="LZ";break;case 22138000:label="PZ";break;case 22222000:case 22222001:label="MRR";break;case 22224000:if(tg.getSymbologyStandard()===1)
- label="UA";else
- label="UAV";break;case 22224001:label="UAV";break;case 22225000:label="LLTR";break;case 22231000:label="ROZ";break;case 22232000:if(tg.getSymbologyStandard()===1)
- label="SHORADEZ";else
- label="FAADEZ";break;case 22233000:label="HIDACZ";break;case 22234000:label="MEZ";break;case 22234100:label="LOMEZ";break;case 22234200:label="HIMEZ";break;case 22235000:label="WFZ";break;case 22340000:label="M";break;case 23164000:case 22350000:label="M";break;case 22421000:label="FEBA";break;case 22422000:label="(PDF)";break;case 22431100:label="(P)";break;case 22432000:label="EA ";break;case 22535000:label="OBJ ";if(tg.get_Client().equalsIgnoreCase("ge"))
- label="OBJ ";break;case 22625000:label="NAI";break;case 22626000:label="TAI";break;case 24211000:label="SMOKE";break;case 24260000:label="FPF";break;case 22532000:label="ATK";break;case 22523000:label="FINAL CL";break;case 22525000:label="LOA";break;case 22526000:label="LD";break;case 22528000:label="PLD";break;case 21800000:label="D";break;case 22613000:label="RL";break;case 24314000:label="SMOKE";break;case 24230000:label="NFL";break;case 24225000:label="MFP";break;case 24210000:label=" FSCL";break;case 24220000:label="CFL ";break;case 24240000:label="RFL ";break;case 22621000:label="AO ";break;case 24315000:label="BOMB";break;case 24226000:label="TGMF";break;case 24321100:label="FSA ";break;case 24321300:case 24321200:label="FSA";break;case 24322100:case 24322300:case 24322200:label="ACA";break;case 24323100:case 24323300:case 24323200:label="FFA";break;case 24324100:case 24324300:case 24324200:label="NFA";break;case 24325100:case 24325300:case 24325200:label="RFA";break;case 24331100:case 24331300:case 24331200:label="ATI ZONE";break;case 243100000:case 24326200:case 24326100:case 24326101:label="PAA";break;case 24332100:case 24332300:case 24332200:label="CFF ZONE";break;case 24336100:case 24336300:case 24336200:label="CF ZONE";break;case 24333100:case 24333300:case 24333200:label="SENSOR ZONE";break;case 24334100:case 24334300:case 24334200:label="CENSOR ZONE";break;case 24335100:case 24335300:case 24335200:label="DA";break;case 24337100:case 24337300:case 24337200:label="ZOR";break;case 24338100:case 24338300:case 24338200:label="TBA";break;case 24339100:case 24339300:case 24339200:label="TVAR";break;case 24351000:case 24353000:case 24352000:label="BKB";break;case 24361000:case 24363000:case 24362000:label="PKB";break;case 25221000:label="MSR ";break;case 25222000:label="ASR ";break;case 25224000:case 25223000:case 25225000:label="MSR ";break;case 22527000:label="LD/LC";break;case 22622000:label="AIRHEAD LINE";break;case 21100000:case 26400000:label="B";break;case 26410000:label="E";break;case 26420000:label="A";break;case 26430000:label="T";break;case 26440000:label="O";break;case 25330000:label="FARP";break;case 25351000:label="BSA";break;case 25352000:label="DSA";break;case 25353000:label="RSA";break;case 21600000:label="ENY";break;case 23114000:label="FREE";break;default:break;}}
- catch(exc)
- {if(Clazz.instanceOf(exc))
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"GetCenterLabel",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetCenterLabel",exc));}
- else
- {throw exc;}}
- return label;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddOffsetModifier=function(tg,text,type,lineFactor,startIndex,endIndex,spaces,rightOrLeft){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();if(text===null||text.equals("")){return;}
- if(tg.Pixels===null||tg.Pixels.size()<2){return;}
- modifier.text=text;modifier.set_IsIntegral(false);modifier.type=type;modifier.lineFactor=lineFactor;if(tg.Pixels.size()>endIndex){modifier.textPath[0]=tg.Pixels.get(startIndex);modifier.textPath[1]=tg.Pixels.get(endIndex);if(rightOrLeft!==null){if(rightOrLeft.equals("left")){modifier.textPath[0].x-=spaces;modifier.textPath[1].x-=spaces;}else{modifier.textPath[0].x+=spaces;modifier.textPath[1].x+=spaces;}}
- tg.modifiers.add(modifier);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddOffsetModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddOffsetModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier=function(tg,text,type,lineFactor,ptStart,ptEnd){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();if(text===null||text.equals("")){return;}
- if(tg.Pixels===null||tg.Pixels.size()<2){return;}
- modifier.text=text;modifier.set_IsIntegral(false);modifier.type=type;modifier.lineFactor=lineFactor;modifier.textPath[0]=ptStart;modifier.textPath[1]=ptEnd;tg.modifiers.add(modifier);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2=function(tg,text,type,lineFactor,pt0,pt1,isIntegral,modifierType){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();if(text===null||text.equals("")){return;}
- modifier.text=text;if(isIntegral!==undefined)
- modifier.set_IsIntegral(isIntegral);modifier.type=type;modifier.lineFactor=lineFactor;modifier.textPath[0]=pt0;modifier.textPath[1]=pt1;modifier.isIntegral=isIntegral;modifier.textID=modifierType;tg.modifiers.add(modifier);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier=function(tg,text,type,lineFactor,startIndex,endIndex,isIntegral){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();if(isIntegral!==undefined)
- modifier.set_IsIntegral((isIntegral).booleanValue());if(text===null||text.equals("")){return;}
- if(tg.Pixels===null||tg.Pixels.isEmpty()){return;}
- modifier.text=text;modifier.type=type;modifier.lineFactor=lineFactor;if(tg.Pixels.size()>endIndex){modifier.textPath[0]=tg.Pixels.get(startIndex);modifier.textPath[1]=tg.Pixels.get(endIndex);tg.modifiers.add(modifier);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddIntegralModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddAreaModifier=function(tg,text,type,lineFactor,pt0,pt1,modifierType){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();modifier.text=text;modifier.set_IsIntegral(true);if(pt0===null||pt1===null){return;}
- modifier.type=type;if(arguments.length>6)
- modifier.textID=modifierType;modifier.lineFactor=lineFactor;modifier.textPath[0]=pt0;modifier.textPath[1]=pt1;tg.modifiers.add(modifier);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddAreaModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddAreaModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier=function(tg,text,type,lineFactor,pt0,pt1,isIntegral,modifierType){try{if(text===null||text.equals("")){return;}
- var modifier=new armyc2.c2sd.JavaTacticalRenderer.Modifier2();modifier.set_IsIntegral((isIntegral).booleanValue());modifier.text=text;if(text===null||text.equals("")){return;}
- if(pt0===null||pt1===null){return;}
- modifier.type=type;modifier.lineFactor=lineFactor;modifier.textPath[0]=pt0;modifier.textPath[1]=pt1;modifier.textID=modifierType;tg.modifiers.add(modifier);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddAreaModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddAreaModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetMBR=function(tg,ptUl,ptUr,ptLr,ptLl){try{var j=0;var x=tg.Pixels.get(0).x;var y=tg.Pixels.get(0).y;for(j=1;j<tg.Pixels.size();j++){x=tg.Pixels.get(j).x;y=tg.Pixels.get(j).y;if(x<ptLl.x){ptLl.x=x;ptUl.x=x;}
- if(x>ptLr.x){ptLr.x=x;ptUr.x=x;}
- if(y>ptLl.y){ptLl.y=y;ptLr.y=y;}
- if(y<ptUl.y){ptUl.y=y;ptUr.y=y;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"GetMBR",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetMBR",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundaryMiddleSegment=function(tg,g2d,pt0,pt1){var middleSegment=Math.floor(tg.Pixels.size()/2)-1;var tooShort=armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetLineTooShort(tg,g2d);var stringWidthENY=0;var stringWidthEchelonSymbol=0;g2d.setFont(tg.get_Font());var metrics=g2d.getFontMetrics();var midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(middleSegment),tg.Pixels.get(middleSegment+1),0);var ptTemp=null;var dist=0;if(tooShort){if(tg.get_Affiliation().equals("H")){stringWidthENY=metrics.stringWidth(tg.get_N());}
- if(tg.get_EchelonSymbol()!==null){stringWidthEchelonSymbol=metrics.stringWidth(tg.get_EchelonSymbol());}
- dist=1.5*(2*stringWidthENY+stringWidthEchelonSymbol);ptTemp=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midpt,tg.Pixels.get(middleSegment),dist/2);pt0.x=ptTemp.x;pt0.y=ptTemp.y;ptTemp=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midpt,tg.Pixels.get(middleSegment+1),dist/2);pt1.x=ptTemp.x;pt1.y=ptTemp.y;}else{ptTemp=tg.Pixels.get(middleSegment);pt0.x=ptTemp.x;pt0.y=ptTemp.y;ptTemp=tg.Pixels.get(middleSegment+1);pt1.x=ptTemp.x;pt1.y=ptTemp.y;}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetLineTooShort=function(tg,g2d){var lineTooShort=false;try{var middleSegment=Math.floor(tg.Pixels.size()/2)-1;g2d.setFont(tg.get_Font());var metrics=g2d.getFontMetrics();var echelonSymbol=null;var stringWidthEchelonSymbol=0;var stringWidthENY=0;var pt0=tg.Pixels.get(middleSegment);var pt1=tg.Pixels.get(middleSegment+1);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);echelonSymbol=tg.get_EchelonSymbol();if(tg.get_Affiliation().equals("H")){stringWidthENY=metrics.stringWidth(tg.get_N());}
- if(echelonSymbol!==null){stringWidthEchelonSymbol=metrics.stringWidth(echelonSymbol);}
- switch(tg.get_LineType()){case 22121000:if(dist<1.5*(stringWidthENY*2+stringWidthEchelonSymbol))
- lineTooShort=true;break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"GetBoundaryLineTooShort",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetBoundaryLineTooShort",exc));}else{throw exc;}}
- return lineTooShort;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundarySegmentTooShort=function(tg,g2d,middleSegment){var lineTooShort=false;try{g2d.setFont(tg.get_Font());var metrics=g2d.getFontMetrics();var echelonSymbol=null;var stringWidthEchelonSymbol=0;var stringWidthENY=0;var pt0=tg.Pixels.get(middleSegment);var pt1=tg.Pixels.get(middleSegment+1);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);echelonSymbol=tg.get_EchelonSymbol();if(tg.get_Affiliation()!==null&&tg.get_Affiliation().equals("H")){stringWidthENY=metrics.stringWidth(tg.get_N());}
- if(echelonSymbol!==null){stringWidthEchelonSymbol=metrics.stringWidth(echelonSymbol);}
- var tWidth=0;var t1Width=0;if(tg.get_Name()!==null&&!tg.get_Name().isEmpty())
- tWidth=metrics.stringWidth(tg.get_Name());if(tg.get_T1()!==null&&!tg.get_T1().isEmpty())
- t1Width=metrics.stringWidth(tg.get_T1());var totalWidth=stringWidthENY*2+stringWidthEchelonSymbol;if(totalWidth<tWidth)
- totalWidth=tWidth;if(totalWidth<t1Width)
- totalWidth=t1Width;switch(tg.get_LineType()){case 22121000:if(dist<1.25*(totalWidth))
- lineTooShort=true;break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"GetBoundaryLineTooShort",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetBoundaryLineTooShort",exc));}else{throw exc;}}
- return lineTooShort;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddBoundaryModifiers=function(tg,g2d,clipBounds){try{var j=0;var csFactor=1;var foundSegment=new Boolean(false);var pt0=null;var pt1=null;var ptLast=null;var TLineFactor=0;var T1LineFactor=0;var affiliation=tg.get_Affiliation();var lineTooShort=new Boolean(false);if(tg.get_Client().equals("cpof3d"))
- csFactor=0.85;var middleSegment=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getVisibleMiddleSegment(tg,clipBounds);for(j=0;j<tg.Pixels.size()-1;j++){if(tg.get_Client().equalsIgnoreCase("ge"))
- if(j!==middleSegment)
- continue;pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(pt0.x<pt1.x){TLineFactor=-1.3;T1LineFactor=1;}else if(pt0.x===pt1.x){if(pt1.y<pt0.y){TLineFactor=-1;T1LineFactor=1;}else{TLineFactor=1;T1LineFactor=-1;}}else{TLineFactor=1;T1LineFactor=-1.3;}
- lineTooShort=new Boolean(armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundarySegmentTooShort(tg,g2d,j));if(lineTooShort.booleanValue()===false){foundSegment=new Boolean(true);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,TLineFactor*csFactor,j,j+1,new Boolean(true));if(!tg.get_EchelonSymbol().equals(""))
- {armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.2*csFactor,j,j+1,new Boolean(true));}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,T1LineFactor*csFactor,j,j+1,new Boolean(true));if(affiliation!==null&&affiliation.equals("H")){ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,ptLast,new Boolean(true));ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt0,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt1,ptLast,new Boolean(true));}}}
- if(foundSegment.booleanValue()===false){TLineFactor=-1;T1LineFactor=1;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundaryMiddleSegment(tg,g2d,pt0,pt1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,TLineFactor*csFactor,middleSegment,middleSegment+1,new Boolean(true));if(!tg.get_EchelonSymbol().equals("")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.202*csFactor,middleSegment,middleSegment+1,new Boolean(true));}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,T1LineFactor*csFactor,middleSegment,middleSegment+1,new Boolean(true));if(affiliation!==null&&affiliation.equals("H")){ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,ptLast,new Boolean(true));ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt0,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt1,ptLast,new Boolean(true));}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddBoundaryModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryModifiers",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddBoundaryModifiers2=function(tg,g2d,clipBounds){try{var j=0;var csFactor=1;var foundSegment=new Boolean(false);var pt0=null;var pt1=null;var ptLast=null;var TLineFactor=0;var T1LineFactor=0;var affiliation=tg.get_Affiliation();var lineTooShort=new Boolean(false);if(tg.get_Client().equals("cpof3d")){csFactor=0.85;}
- var middleSegment=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getVisibleMiddleSegment2(tg,clipBounds);for(j=0;j<tg.Pixels.size()-1;j++){if(tg.get_Client().equalsIgnoreCase("ge"))
- if(j!==middleSegment)
- continue;pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(pt0.x<pt1.x){TLineFactor=-1.3;T1LineFactor=1;}else if(pt0.x===pt1.x){if(pt1.y<pt0.y){TLineFactor=-1;T1LineFactor=1;}else{TLineFactor=1;T1LineFactor=-1;}}else{TLineFactor=1;T1LineFactor=-1.3;}
- lineTooShort=new Boolean(armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundarySegmentTooShort(tg,g2d,j));if(lineTooShort.booleanValue()===false){foundSegment=new Boolean(true);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,TLineFactor*csFactor,j,j+1,new Boolean(true));if(!tg.get_EchelonSymbol().equals("")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.2*csFactor,j,j+1,new Boolean(true));}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,T1LineFactor*csFactor,j,j+1,new Boolean(true));if(affiliation!==null&&affiliation.equals("H")){ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,ptLast,new Boolean(true));ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt0,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt1,ptLast,new Boolean(true));}}}
- if(foundSegment.booleanValue()===false){TLineFactor=-1;T1LineFactor=1;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundaryMiddleSegment(tg,g2d,pt0,pt1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,TLineFactor*csFactor,middleSegment,middleSegment+1,new Boolean(true));if(!tg.get_EchelonSymbol().equals("")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.202*csFactor,middleSegment,middleSegment+1,new Boolean(true));}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,T1LineFactor*csFactor,middleSegment,middleSegment+1,new Boolean(true));if(affiliation!==null&&affiliation.equals("H")){ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,ptLast,new Boolean(true));ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,pt0,0);ptLast=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,ptLast,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt1,ptLast,new Boolean(true));}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddBoundaryModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryModifiers",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddNameAboveDTG=function(tg,metrics){try{var csFactor=1;if(tg.get_Client().equals("cpof3d"))
- csFactor=0.667;var label=armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetCenterLabel(tg);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(1));var lastIndex=tg.Pixels.size()-1;var nextToLastIndex=tg.Pixels.size()-2;var ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(lastIndex));var ptNextToLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(nextToLastIndex));armyc2.c2sd.JavaTacticalRenderer.Modifier2.shiftModifierPath(tg,pt0,pt1,ptLast,ptNextToLast);var stringWidth=metrics.stringWidth(label+" "+tg.get_Name());armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+" "+tg.get_Name(),1,0,pt0,pt1,new Boolean(false));pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(tg.Pixels.get(0),tg.Pixels.get(1),-1.5*stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+" "+tg.get_Name(),1,0,ptLast,ptNextToLast,new Boolean(false));pt0=tg.Pixels.get(lastIndex);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(tg.Pixels.get(lastIndex),tg.Pixels.get(nextToLastIndex),-1.5*stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddBoundaryModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryModifiers",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.blankString=function(metrics,width){var str="";try{while(metrics.stringWidth(str)<width)
- str+=" ";}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"getLowestSegmentIndex",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getLowestSegmentIndex",exc));}else{throw exc;}}
- return str;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.shiftModifierPath=function(tg,pt0,pt1,ptLast,ptNextToLast){try{switch(tg.get_LineType()){case 22422000:case 22124000:case 22525000:case 22526000:case 22613000:case 22527000:case 22125000:case 22523000:case 22528000:case 24230000:case 22122000:case 22123000:case 22612000:case 22623000:case 22612001:case 22623001:if(pt0!==null&&pt1!==null&&pt0.x===pt1.x)
- pt1.x+=1;if(ptLast!==null&&ptNextToLast!==null&&ptNextToLast.x===ptLast.x)
- ptNextToLast.x+=1;break;default:return;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"shiftModifierPath",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside shiftModifierPath",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY=function(tg,g2d){try{var metrics=g2d.getFontMetrics();var label=null;var middleSegment=Math.floor(tg.Pixels.size()/2)-1;var middleSegment2=tg.Pixels.size()-2;var startIndex=0;var j=0;var linetype=tg.get_LineType();var affiliation=tg.get_Affiliation();var echelonSymbol=tg.get_EchelonSymbol();if(affiliation!==null&&affiliation.equals("H"))
- label=tg.get_N();if(tg.Pixels.size()>3)
- middleSegment=Math.floor(tg.Pixels.size()/4);if(tg.Pixels.size()>3)
- middleSegment2=Math.floor(3*tg.Pixels.size()/4);switch(linetype){case 22340000:case 22350000:case 23164000:label="M";break;case 23180000:label="UXO";break;case 22431000:case 22431100:if(echelonSymbol!==null&&!echelonSymbol.isEmpty())
- startIndex=1;break;default:break;}
- if(label===null||label.isEmpty())
- return;var stringWidth=metrics.stringWidth(label);var foundLongSegment=false;var dist=0;var pt0=null;var pt1=null;for(j=startIndex;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist>1.5*stringWidth){foundLongSegment=true;armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,0,pt0,pt1,new Boolean(true));}}
- if(foundLongSegment===false){if(middleSegment!==startIndex)
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,middleSegment,middleSegment+1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,middleSegment2,middleSegment2+1,new Boolean(true));}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"areasWithENY",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside areasWithENY",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.getVisibleMiddleSegment=function(tg,clipBounds){var middleSegment=-1;try{var pt0=null;var pt1=null;var j=0;middleSegment=Math.floor((tg.Pixels.size()+1)/2)-1;var foundVisibleSegment=new Boolean(false);if(clipBounds===null)
- return middleSegment;for(j=middleSegment;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(clipBounds.containsPt2(pt0.x,pt0.y)||clipBounds.containsPt2(pt1.x,pt1.y)){middleSegment=j;foundVisibleSegment=new Boolean(true);break;}}
- if(foundVisibleSegment.booleanValue()===false){for(j=middleSegment;j>0;j--){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j-1);if(clipBounds.containsPt2(pt0.x,pt0.y)||clipBounds.containsPt2(pt1.x,pt1.y)){middleSegment=j-1;foundVisibleSegment=new Boolean(true);break;}}}
- if(foundVisibleSegment.booleanValue()===false)
- middleSegment=Math.floor(tg.Pixels.size()/2)-1;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"getMiddleSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getMiddleSegment",exc));}else{throw exc;}}
- return middleSegment;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.getvisibleMiddleSegment2=function(tg,clipBounds){var middleSegment=-1;try{var clipBoundsPoly=new armyc2.c2sd.graphics2d.Polygon();var pt0=null;var pt1=null;var j=0;var x=0;var y=0;middleSegment=Math.floor((tg.Pixels.size()+1)/2)-1;var foundVisibleSegment=new Boolean(false);if(clipBounds===null)
- return middleSegment;for(j=0;j<clipBounds.size();j++){x=Math.floor(clipBounds.get(j).getX());y=Math.floor(clipBounds.get(j).getY());clipBoundsPoly.addPoint(x,y);}
- for(j=middleSegment;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(clipBoundsPoly.contains(pt0.x,pt0.y)||clipBoundsPoly.contains(pt1.x,pt1.y)){middleSegment=j;foundVisibleSegment=new Boolean(true);break;}}
- if(foundVisibleSegment.booleanValue()===false){for(j=middleSegment;j>0;j--){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j-1);if(clipBoundsPoly.contains(pt0.x,pt0.y)||clipBoundsPoly.contains(pt1.x,pt1.y)){middleSegment=j-1;foundVisibleSegment=new Boolean(true);break;}}}
- if(foundVisibleSegment.booleanValue()===false)
- middleSegment=Math.floor(tg.Pixels.size()/2)-1;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"getMiddleSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getMiddleSegment",exc));}else{throw exc;}}
- return middleSegment;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier=function(tg,modifierType){try{var j=0;var modifier=null;for(j=0;j<tg.modifiers.size();j++){modifier=tg.modifiers.get(j);if(modifier.textID===null)
- continue;if(modifier.textID.equalsIgnoreCase(modifierType)){tg.modifiers.remove(modifier);break;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"removeModifier",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside removeModifier",exc));}else{throw exc;}}
- return;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.RemoveModifiers=function(tg,g2d,isTextFlipped,iteration){try{if(!tg.get_Client().equalsIgnoreCase("cpof2d")&&!tg.get_Client().equalsIgnoreCase("cpof3d"))
- return;var j=0;var mbrPoly=null;switch(tg.get_LineType()){case 24311000:case 24322200:case 24323200:case 24324200:case 24325200:case 24352000:case 24362000:case 24321200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24322300:case 24312000:case 24321300:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24323300:case 24324300:case 24325300:case 24353000:case 24363000:if(tg.modifiers===null||tg.modifiers.isEmpty()||iteration!==1)
- return;mbrPoly=new armyc2.c2sd.graphics2d.Polygon();for(j=0;j<tg.Pixels.size();j++)
- mbrPoly.addPoint(Math.floor(tg.Pixels.get(j).x),Math.floor(tg.Pixels.get(j).y));break;default:if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(tg.get_LineType())===false||iteration!==0)
- return;if(tg.modifiers===null||tg.modifiers.isEmpty())
- return;mbrPoly=new armyc2.c2sd.graphics2d.Polygon();for(j=0;j<tg.Pixels.size();j++)
- mbrPoly.addPoint(Math.floor(tg.Pixels.get(j).x),Math.floor(tg.Pixels.get(j).y));}
- var font=null;font=tg.get_Font();if(font===null){font=g2d.getFont();}
- g2d.setFont(font);var metrics=g2d.getFontMetrics();var stringWidth=0;var stringHeight=0;var wfits=true;var w1fits=true;var ww1fits=true;var hfits=true;var h1fits=true;var h2fits=true;var modifier=null;var modifierType="";var s="";var pt0=null;var pt1=null;var pt2=null;var pt3=null;var pt4=null;var lineFactor=0;var x=0;var y=0;var x1=0;var y1=0;var x2=0;var y2=0;for(j=0;j<tg.modifiers.size();j++){modifier=tg.modifiers.get(j);if(modifier.textID===null||modifier.textID.isEmpty())
- continue;modifierType=modifier.textID;lineFactor=modifier.lineFactor;if(isTextFlipped===true)
- lineFactor=-lineFactor;s=modifier.text;if(s===null||s.equals("")){continue;}
- stringWidth=metrics.stringWidth(s)+1;stringHeight=font.getSize();if(modifier.type===3){pt0=modifier.textPath[0];x1=pt0.x;y1=pt0.y;x=Math.floor(x1)-Math.floor(Math.floor(stringWidth)/2);y=Math.floor(y1)+Math.floor((stringHeight/2))+Math.floor((1.25*lineFactor*stringHeight));x2=Math.floor(x1)+Math.floor(Math.floor(stringWidth)/2);y2=Math.floor(y1)+Math.floor((stringHeight/2))+Math.floor((1.25*lineFactor*stringHeight));if(mbrPoly.contains(x,y)&&mbrPoly.contains(x2,y2))
- modifier.fitsMBR=true;else
- modifier.fitsMBR=false;}else if(modifier.type===2){pt0=modifier.textPath[0];pt1=modifier.textPath[1];var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ptCenter,pt0,stringWidth/2);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ptCenter,pt1,stringWidth/2);if(lineFactor>=0)
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptCenter,pt0,pt0,3,Math.abs((lineFactor)*stringHeight));else
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptCenter,pt0,pt0,2,Math.abs((lineFactor)*stringHeight));if(lineFactor>=0)
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptCenter,pt1,pt1,3,Math.abs((lineFactor)*stringHeight));else
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptCenter,pt1,pt1,2,Math.abs((lineFactor)*stringHeight));x1=pt2.x;y1=pt2.y;x2=pt3.x;y2=pt3.y;if(mbrPoly.contains(x1,y1)&&mbrPoly.contains(x2,y2))
- modifier.fitsMBR=true;else
- modifier.fitsMBR=false;}else
- modifier.fitsMBR=true;}
- for(j=0;j<tg.modifiers.size();j++){modifier=tg.modifiers.get(j);if(modifier.textID===null||modifier.textID.isEmpty())
- continue;if(modifier.fitsMBR===false){if(modifier.textID.equalsIgnoreCase("W"))
- wfits=false;else if(modifier.textID.equalsIgnoreCase("W1"))
- w1fits=false;else if(modifier.textID.equalsIgnoreCase("W+W1"))
- ww1fits=false;else if(modifier.textID.equalsIgnoreCase("H"))
- hfits=false;else if(modifier.textID.equalsIgnoreCase("H1"))
- h1fits=false;else if(modifier.textID.equalsIgnoreCase("H2"))
- h2fits=false;}}
- if(wfits===false||w1fits===false){armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"W1");}
- if(ww1fits===false){armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"W+W1");}
- if(hfits===false||h1fits===false||h2fits===false){armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"H1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.removeModifier(tg,"H2");}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"RemoveModifeirs",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside RemoveModifiers",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers=function(tg,g2d,clipBounds){try{if(tg.Pixels===null||tg.Pixels.isEmpty())
- return;var font=tg.get_Font();var shiftLines=armyc2.c2sd.JavaLineArray.Channels.getShiftLines();var usas=false;var foundSegment=false;var csFactor=1;var dist=0;var dist2=0;var midPt=null;var isChange1Area=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(tg.get_LineType(),null);if(isChange1Area)
- return;var clipRect=null;var clipArray=null;if(clipBounds!==null&&clipBounds instanceof java.util.ArrayList){clipArray=clipBounds;}
- if(clipBounds!==null&&clipBounds instanceof armyc2.c2sd.graphics2d.Rectangle2D){clipRect=clipBounds;}
- if(clipBounds!==null&&clipBounds instanceof armyc2.c2sd.graphics2d.Rectangle){clipRect=clipBounds;}
- var metrics=g2d.getFontMetrics();var stringWidth=0;var stringWidth2=0;var dash="";if(tg.get_DTG()!==null&&tg.get_DTG1()!==null&&tg.get_DTG().isEmpty()===false&&tg.get_DTG1().isEmpty()===false)
- dash=" - ";if(tg.get_Client().equals("cpof3d"))
- csFactor=0.9;switch(tg.get_LineType()){case 2237000:case 24313000:case 25224000:case 25223000:case 25225000:case 25310000:case 25320000:case 23180000:case 25330000:case 25351000:case 25352000:case 25353000:case 31770000:case 31740000:case 317100000:case 25340000:case 25221000:case 25222000:case 24250000:case 24211000:case 24260000:case 23163000:case 23162000:case 22622000:case 25211000:case 25212000:case 24321100:case 22522100:case 22535000:case 22432000:case 22621000:case 24322100:case 24323100:case 24324100:case 24325100:case 24331100:case 24332100:case 24336100:case 24338100:case 24339100:case 24351000:case 24361000:case 24337100:case 24335100:case 24333100:case 24334100:case 24314000:case 22431000:case 22431100:case 22422000:case 22421000:case 22625000:case 22626000:case 22532000:case 22531000:case 22235000:case 23114000:case 23115000:case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:case 22223000:case 22221000:case 22222000:case 22224000:case 22222001:case 22224001:case 22225000:case 221311000:case 22131000:case 22134000:case 22624000:case 22132000:case 22133000:case 22135000:case 22136000:case 22137000:case 22138000:case 22121000:case 22340000:case 22350000:case 23164000:case 22124000:case 22523000:case 22525000:case 22526000:case 22125000:case 22613000:case 22527000:case 22528000:case 24230000:case 24225000:case 24210000:case 24220000:case 24240000:case 22122000:case 22123000:case 21700000:case 21710000:case 22320000:case 22330000:case 22524000:case 23490000:case 212000000:case 212400000:case 212410000:case 26400000:case 26410000:case 26420000:case 26430000:case 26440000:case 211800000:case 24315000:case 23111000:case 23111001:case 23113000:case 24330000:case 23350000:case 23410000:case 212210000:case 212230000:case 212220000:case 212210001:case 212230001:case 212220001:case 21800000:case 24226000:case 22131001:case 15000000:case 15000001:break;default:return;}
- var factor=1;var linetype=tg.get_LineType();var j=0;var k=0;var x=0;var y=0;if(tg.get_Font()!==null&&tg.get_Font().getSize()>0){factor=10/tg.get_Font().getSize();}else
- return;var lastIndex=tg.Pixels.size()-1;var nextToLastIndex=tg.Pixels.size()-2;var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var pt1=null;var pt2=null;var pt3=null;var ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(lastIndex));var ptNextToLast=null;if(lastIndex>0)
- ptNextToLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(lastIndex-1));if(tg.Pixels.size()>1)
- pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(1));armyc2.c2sd.JavaTacticalRenderer.Modifier2.shiftModifierPath(tg,pt0,pt1,ptLast,ptNextToLast);var label=armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetCenterLabel(tg);var pts=tg.Pixels.toArray();var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble2(pts,pts.length);var middleSegment=Math.floor((tg.Pixels.size()+1)/2)-1;if(clipRect!==null)
- middleSegment=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getVisibleMiddleSegment(tg,clipRect);else if(clipArray!==null)
- middleSegment=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getVisibleMiddleSegment2(tg,clipArray);var affiliation=tg.get_Affiliation();if(tg.Pixels.size()>2){pt2=tg.Pixels.get(2);}
- if(tg.Pixels.size()>3){pt3=tg.Pixels.get(3);}
- var TLineFactor=0;var T1LineFactor=0;var lr=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var ll=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var ul=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var ur=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));var index=0;var nextIndex=0;var size=tg.Pixels.size();switch(linetype){case 15000000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),1,T1LineFactor,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),1,T1LineFactor,ptLast,ptNextToLast,new Boolean(false));break;case 15000001:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));break;case 22131001:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(true));break;case 2237000:if(affiliation!==null&&affiliation.equals("H")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_N(),2,0,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_N(),2,0,Math.floor(lastIndex/2),Math.floor(lastIndex/2)+1,new Boolean(true));}
- if(tg.Pixels.size()===3)
- {armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_H(),2,0,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_H(),2,0,1,2,new Boolean(true));}
- else
- {if(lastIndex>3)
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_H(),2,0,Math.floor(lastIndex/2)-1,Math.floor(lastIndex/2),new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_H(),2,0,Math.floor(lastIndex/2)+1,Math.floor(lastIndex/2)+2,new Boolean(true));}
- break;case 24313000:y=pt0.y;index=0;for(j=1;j<size-1;j++){if(tg.Pixels.get(j).y<y){y=tg.Pixels.get(j).y;index=j;}
- if(index>0){if(tg.Pixels.get(index-1).y<tg.Pixels.get(index+1).y){nextIndex=index-1;}else{nextIndex=index+1;}}
- if(index===0){if(pt1.y<ptNextToLast.y){nextIndex=1;}else{nextIndex=nextToLastIndex;}}}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,index,nextIndex,new Boolean(true));break;case 212210000:case 212230000:case 212220000:stringWidth=Math.floor((1.5*metrics.stringWidth(label)));pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));pt0.x+=4*stringWidth;pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));pt1.x-=4*stringWidth;armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt0,pt0,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(true));break;case 212210001:case 212230001:case 212220001:stringWidth=Math.floor((1.5*metrics.stringWidth(label)));pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(1));pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(2));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt2,pt2,new Boolean(true));break;case 24225000:pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,middleSegment,middleSegment+1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG(),2,1*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG1(),2,2*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));break;case 25224000:stringWidth=Math.floor((1.5*metrics.stringWidth("ALT")));stringWidth2=Math.floor((1.5*metrics.stringWidth(label+tg.get_Name())));if(stringWidth2>stringWidth)
- stringWidth=stringWidth2;foundSegment=false;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist<stringWidth)
- continue;else{if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-3.5*factor*csFactor,j,j+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"ALT",2,-1.5*factor*csFactor,j,j+1,new Boolean(true));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,j,j+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"ALT",2,0.7*csFactor,j,j+1,new Boolean(true));}
- foundSegment=true;}}
- if(foundSegment===false){pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-3.5*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"ALT",2,-1.5*factor*csFactor,middleSegment,middleSegment+1,new Boolean(true));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"ALT",2,0.7*csFactor,middleSegment,middleSegment+1,new Boolean(true));}}
- break;case 25223000:stringWidth=Math.floor((1.5*metrics.stringWidth(label+tg.get_Name())));foundSegment=false;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist<stringWidth)
- continue;else{if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-3*factor*csFactor,j,j+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,j,j+1,new Boolean(false));}
- foundSegment=true;}}
- if(foundSegment===false){pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-3*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));}}
- break;case 25225000:stringWidth=Math.floor((1.5*metrics.stringWidth(label+tg.get_Name())));foundSegment=false;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist<stringWidth)
- continue;else{if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-4.5*factor*csFactor,j,j+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,j,j+1,new Boolean(false));}
- foundSegment=true;}}
- if(foundSegment===false){pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);if(pt0.x<pt1.x||(pt0.x===pt1.x&&pt0.y>pt1.y)){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-4.5*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-2*factor*csFactor,middleSegment,middleSegment+1,new Boolean(false));}}
- break;case 25310000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"DETAINEE",3,-1.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"HOLDING",3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"AREA",3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 25320000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"EPW",3,-1.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"HOLDING",3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"AREA",3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 23180000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);break;case 25330000:case 25351000:case 25352000:case 25353000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 31770000:case 31740000:case 317100000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddAreaModifier(tg,tg.get_H(),3,-0.5,ptCenter,ptCenter,"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddAreaModifier(tg,tg.get_H1(),3,0.5,ptCenter,ptCenter,"H1");break;case 25340000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"REFUGEE",3,-1.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"HOLDING",3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"AREA",3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 25221000:case 25222000:foundSegment=false;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);stringWidth=Math.floor((1.5*metrics.stringWidth(label+tg.get_Name())));dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist<stringWidth)
- continue;else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-1*csFactor,j,j+1,new Boolean(false));foundSegment=true;}}
- if(foundSegment===false)
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-1*csFactor,middleSegment,middleSegment+1,new Boolean(false));break;case 24250000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,-0.8*csFactor,middleSegment,middleSegment+1,new Boolean(false));break;case 24211000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,-0.8*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0.8*csFactor,middleSegment,middleSegment+1,new Boolean(false));break;case 24260000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,-1*csFactor,0,1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,1*csFactor,0,1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,2*csFactor,0,1,new Boolean(false));break;case 23163000:if(tg.Pixels.get(1).y>tg.Pixels.get(0).y){pt0=tg.Pixels.get(1);pt1=tg.Pixels.get(3);pt2=tg.Pixels.get(0);pt3=tg.Pixels.get(2);}else{pt0=tg.Pixels.get(0);pt1=tg.Pixels.get(2);pt2=tg.Pixels.get(1);pt3=tg.Pixels.get(3);}
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt2,-20);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt1,pt3,-20);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,0,pt2,pt3,new Boolean(false));break;case 23162000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetMBR(tg,ul,ur,lr,ll);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_H(),2,-1.5*factor*csFactor,ul,ur,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG(),2,1.5*factor*csFactor,ll,lr,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);break;case 22622000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetMBR(tg,ul,ur,lr,ll);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,1.35*factor*csFactor,ll,lr,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",2,1.1*(factor*csFactor+csFactor),ll,lr,new Boolean(false));break;case 25211000:case 25212000:var convoyBlankString=armyc2.c2sd.JavaTacticalRenderer.Modifier2.blankString(metrics,35);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_H()+convoyBlankString+tg.get_H1(),2,0,0,1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,1.2*csFactor,0,1,new Boolean(false));break;case 22522100:if(affiliation!==null&&affiliation.equals("H")){k=tg.Pixels.size();j=armyc2.c2sd.JavaLineArray.lineutility.GetDirAtkAirMiddleSegment(tg.Pixels.toArray(new Array(tg.Pixels.size())),tg.Pixels.size());pt1=tg.Pixels.get(k-j-1);pt0=tg.Pixels.get(k-j);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,2*dist/3);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_N(),2,0,pt0,pt1,true);}
- break;case 22535000:case 22432000:case 22621000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));break;case 24322100:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-3*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-2*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MIN ALT: "+tg.get_H(),3,-1*csFactor,ptCenter,ptCenter,new Boolean(false),"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MAX ALT: "+tg.get_H1(),3,0,ptCenter,ptCenter,new Boolean(false),"H1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"Grids: "+tg.get_H2(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false),"H2");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"EFF: "+tg.get_DTG(),3,2*csFactor,ptCenter,ptCenter,new Boolean(false),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG1(),3,3*csFactor,ptCenter,ptCenter,new Boolean(false),"W1");break;case 24323100:case 24325100:case 24351000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false),"W+W1");break;case 24361000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false),"W+W1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_H1(),3,2*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 24324100:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");break;case 24321100:case 24331100:case 24332100:case 24336100:case 24338100:case 24339100:case 24337100:case 24335100:case 24333100:case 24334100:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetMBR(tg,ul,ur,lr,ll);var ptLeft=ul;var ptRight=ur;if(tg.get_Client().equalsIgnoreCase("ge")){ptLeft.x-=Math.floor(font.getSize()/2);ptRight.x-=Math.floor(font.getSize()/2);}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG(),1,0.5*csFactor,ptLeft,ptRight,new Boolean(false),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG1(),1,1.5*csFactor,ptLeft,ptRight,new Boolean(false),"W1");break;case 24314000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false),"W+W1");break;case 22431000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.2*csFactor,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);break;case 22431100:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,-0.2*csFactor,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);break;case 22422000:pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt0,-22,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(false));break;case 22421000:stringWidth=metrics.stringWidth(label);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pt1.x-=stringWidth+8;armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(false));pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptLast);pt1.x+=40;armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(false));break;case 22625000:case 22626000:case 22532000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 22531000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"ASLT",3,-1*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"PSN",3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 22235000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1.5*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"TIME FROM: "+tg.get_DTG(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(true),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"TIME TO: "+tg.get_DTG1(),3,1.5*csFactor,ptCenter,ptCenter,new Boolean(true),"W1");break;case 23114000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG1(),3,1.5*csFactor,ptCenter,ptCenter,new Boolean(false),"W1");break;case 23115000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-1*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG(),3,0,ptCenter,ptCenter,new Boolean(true),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(true),"W1");break;case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-2.5,ptCenter,ptCenter,new Boolean(false),"");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-1.5,ptCenter,ptCenter,new Boolean(false),"T");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MIN ALT: "+tg.get_H(),3,-0.5,ptCenter,ptCenter,new Boolean(false),"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MAX ALT: "+tg.get_H1(),3,0.5,ptCenter,ptCenter,new Boolean(false),"H1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"TIME FROM: "+tg.get_DTG(),3,1.5,ptCenter,ptCenter,new Boolean(false),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"TIME TO: "+tg.get_DTG1(),3,2.5,ptCenter,ptCenter,new Boolean(false),"W1");break;case 22223000:if(tg.getSymbologyStandard()===1){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"SAAFR "+tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Max Alt: "+tg.get_H1(),2,-4*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Min Alt: "+tg.get_H(),2,-5*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Width: "+tg.get_H2(),2,-6*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Name: "+tg.get_Name(),2,-7*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG Start: "+tg.get_DTG(),2,-3*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG End: "+tg.get_DTG1(),2,-2*csFactor,middleSegment,middleSegment+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Max Alt: "+tg.get_H1(),2,-2*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Min Alt: "+tg.get_H(),2,-3*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Width: "+tg.get_H2(),2,-4*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Name: "+tg.get_Name(),2,-5*csFactor,middleSegment,middleSegment+1,new Boolean(false));}
- break;case 22221000:if(tg.getSymbologyStandard()===1){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+" "+tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Max Alt: "+tg.get_H1(),2,-4*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Min Alt: "+tg.get_H(),2,-5*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Width: "+tg.get_H2(),2,-6*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Name: "+tg.get_Name(),2,-7*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG Start: "+tg.get_DTG(),2,-3*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG End: "+tg.get_DTG1(),2,-2*csFactor,middleSegment,middleSegment+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,-0.5*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_T1(),2,0.5*csFactor,middleSegment,middleSegment+1,new Boolean(false));}
- break;case 22222001:case 22224001:case 22222000:case 22224000:case 22225000:if(tg.getSymbologyStandard()===1){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+" "+tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Max Alt: "+tg.get_H1(),2,-4*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Min Alt: "+tg.get_H(),2,-5*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Width: "+tg.get_H2(),2,-6*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"Name: "+tg.get_Name(),2,-7*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG Start: "+tg.get_DTG(),2,-3*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,"DTG End: "+tg.get_DTG1(),2,-2*csFactor,middleSegment,middleSegment+1,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,-0.5,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,0.5,middleSegment,middleSegment+1,new Boolean(false));}
- break;case 221311000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);break;case 22131000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));break;case 22134000:case 22624000:if(affiliation!==null&&affiliation.equals("H")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_N(),2,0,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_N(),2,0,middleSegment,middleSegment+1,new Boolean(true));}
- break;case 22132000:case 22133000:case 22135000:case 22136000:case 22137000:case 22138000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 22121000:if(clipRect!==null)
- {armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddBoundaryModifiers(tg,g2d,clipRect);}
- else if(clipArray!==null)
- {armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddBoundaryModifiers2(tg,g2d,clipArray);}
- else
- {armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddBoundaryModifiers(tg,g2d,null);}
- break;case 22340000:case 22350000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);if(affiliation!==null&&affiliation.equals("H")){pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,pt1,new Boolean(true));if(middleSegment!==0){pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,pt1,new Boolean(true));}}
- break;case 23164000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.areasWithENY(tg,g2d);if(affiliation!==null&&affiliation.equals("H")){pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,pt1,new Boolean(true));if(middleSegment!==0){pt0=tg.Pixels.get(middleSegment);pt1=tg.Pixels.get(middleSegment+1);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),2,0,pt0,pt1,new Boolean(true));}}
- break;case 22124000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+tg.get_Name(),1,T1LineFactor,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label+tg.get_Name(),1,T1LineFactor,ptLast,ptNextToLast,new Boolean(false));break;case 22525000:case 22526000:case 22613000:case 22527000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,ptLast,ptNextToLast,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,ptLast,ptNextToLast,new Boolean(false));break;case 22125000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,ptLast,ptNextToLast,new Boolean(false));break;case 22523000:case 22528000:if(usas===false){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,ptLast,ptNextToLast,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,ptLast,ptNextToLast,new Boolean(false));}else
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddNameAboveDTG(tg,metrics);break;case 24230000:if(usas===false){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,pt0,pt1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"(PL "+tg.get_Name()+")",1,1*csFactor,ptLast,ptNextToLast,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,ptLast,ptNextToLast,new Boolean(false));}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddNameAboveDTG(tg,metrics);}
- break;case 24210000:pt0=tg.Pixels.get(0);pt1=tg.Pixels.get(1);pt2=tg.Pixels.get(tg.Pixels.size()-1);pt3=tg.Pixels.get(tg.Pixels.size()-2);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt2,pt3);stringWidth=Math.floor((metrics.stringWidth(tg.get_Name()+" "+label)));stringWidth2=Math.floor((metrics.stringWidth(tg.get_DTG())));if(stringWidth2>stringWidth)
- stringWidth=stringWidth2;if(tg.Pixels.size()===2){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name()+" "+label,2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);if(dist>2*stringWidth+5){pt0=tg.Pixels.get(tg.Pixels.size()-1);pt1=tg.Pixels.get(tg.Pixels.size()-2);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name()+" "+label,2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}}else{var dist3=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt2);if(dist>stringWidth+5||dist>=dist2||dist3>stringWidth+5){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name()+" "+label,2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}
- if(dist2>stringWidth+5||dist2>dist||dist3>stringWidth+5){pt0=tg.Pixels.get(tg.Pixels.size()-1);pt1=tg.Pixels.get(tg.Pixels.size()-2);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name()+" "+label,2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}}
- break;case 24220000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label+tg.get_Name(),2,-0.7*csFactor,middleSegment,middleSegment+1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,0.7*csFactor,middleSegment,middleSegment+1,new Boolean(false));break;case 24240000:pt0=tg.Pixels.get(0);pt1=tg.Pixels.get(1);pt2=tg.Pixels.get(tg.Pixels.size()-1);pt3=tg.Pixels.get(tg.Pixels.size()-2);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt2,pt3);stringWidth=Math.floor((metrics.stringWidth(label+" "+tg.get_Name())));stringWidth2=Math.floor((metrics.stringWidth(tg.get_DTG())));if(stringWidth2>stringWidth)
- stringWidth=stringWidth2;if(tg.Pixels.size()===2){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label+" "+tg.get_Name(),2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);if(dist>2*stringWidth+5){pt0=tg.Pixels.get(tg.Pixels.size()-1);pt1=tg.Pixels.get(tg.Pixels.size()-2);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label+" "+tg.get_Name(),2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}}else{dist3=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt2);if(dist>stringWidth+5||dist>=dist2||dist3>stringWidth+5){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label+" "+tg.get_Name(),2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}
- if(dist2>stringWidth+5||dist2>dist||dist3>stringWidth+5){pt0=tg.Pixels.get(tg.Pixels.size()-1);pt1=tg.Pixels.get(tg.Pixels.size()-2);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label+" "+tg.get_Name(),2,-0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG(),2,0.7*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,1.7*csFactor,pt0,pt1,false);}}
- break;case 22122000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,pt0,pt1,new Boolean(false));if(affiliation!==null&&affiliation.equals("H")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),1,-1*csFactor,pt0,pt1,new Boolean(false));}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,1,0,ptLast,ptNextToLast,new Boolean(false));if(affiliation!==null&&affiliation.equals("H")){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),1,-1*csFactor,ptLast,ptNextToLast,new Boolean(false));}
- break;case 22123000:var shiftFactor=1;if(shiftLines)
- shiftFactor=0.5;if(affiliation!==null&&affiliation.equals("H")){if(pt0.x<pt1.x){TLineFactor=-shiftFactor;}else{TLineFactor=shiftFactor;}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),1,TLineFactor,pt0,pt1,new Boolean(false));if(ptNextToLast.x<ptLast.x){TLineFactor=-shiftFactor;}else{TLineFactor=shiftFactor;}
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_N(),1,TLineFactor,ptLast,ptNextToLast,new Boolean(false));}
- break;case 21700000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,1,0,new Boolean(false));break;case 21710000:stringWidth=Math.floor((1.5*metrics.stringWidth(label)));pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,0,pt1,pt2,false);break;case 22330000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,-0.7*csFactor,1,0,new Boolean(false));break;case 22320000:midPt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(lastIndex-1),tg.Pixels.get(nextToLastIndex-1),0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),2,0,tg.Pixels.get(lastIndex-1),midPt,new Boolean(false));break;case 22524000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,1,0,new Boolean(false));break;case 23490000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,1,0,new Boolean(true));break;case 212000000:case 212400000:case 212410000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,0,1,new Boolean(true));break;case 26400000:case 26410000:case 26420000:case 26430000:case 26440000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,0,tg.Pixels.get(0),tg.Pixels.get(1),new Boolean(true));break;case 211800000:case 24315000:case 24226000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,ptCenter,ptCenter,new Boolean(true));break;case 23111000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_T1(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(false));break;case 23111001:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_Name(),2,0,middleSegment,middleSegment+1,new Boolean(false));break;case 23113000:case 24330000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));break;case 23350000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_EchelonSymbol(),2,0,0,1,new Boolean(true));break;case 23410000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"1",3,0,pt1,pt1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"2",3,0,pt2,pt2,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"3",3,0,pt3,pt3,new Boolean(true));break;case 24311000:case 24312000:case 15000002:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,pt0,pt0,new Boolean(false));break;case 21800000:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,tg.get_DTG(),2,-1*csFactor,0,1,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,0,1,new Boolean(true));break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddModifiers",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.getRFALines=function(tg){var lines=1;try{if(tg.get_Name()!==null&&!tg.get_Name().isEmpty())
- lines++;if(tg.get_DTG()!==null&&!tg.get_DTG().isEmpty())
- lines++;else if(tg.get_DTG1()!==null&&!tg.get_DTG1().isEmpty())
- lines++;switch(tg.get_LineType()){case 24352000:case 24362000:if(tg.get_H1()!==null&&!tg.get_H1().isEmpty())
- lines++;break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddModifiers",exc));}else{throw exc;}}
- return lines;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.Test=function(tg)
- {return'test';};armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers2=function(tg){try{if(tg.Pixels===null||tg.Pixels.isEmpty())
- return;if(tg.modifiers===null)
- tg.modifiers=new java.util.ArrayList();var font=tg.get_Font();var ptCenter=null;var csFactor=1;var linetype=tg.get_LineType();var pt0=null;var pt1=null;var pt2=null;var pt3=null;var j=0;var k=0;var dist=0;var label=armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetCenterLabel(tg);var H1=null;var lastIndex=tg.Pixels.size()-1;var nextToLastIndex=0;if(tg.Pixels.size()>1)
- nextToLastIndex=tg.Pixels.size()-2;var ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(lastIndex));var ptNextToLast=null;if(tg.Pixels.size()>1)
- ptNextToLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(nextToLastIndex));var dash="";if(tg.get_DTG()!==null&&tg.get_DTG1()!==null&&tg.get_DTG().isEmpty()===false&&tg.get_DTG1().isEmpty()===false)
- dash=" - ";var ptLeft=null;var ptRight=null;var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();var metrics=g2d.getFontMetrics();var stringWidth=0;var rfaLines=0;var pts=null;pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0));if(tg.Pixels.size()>1)
- pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(1));if(tg.get_Client().equals("cpof3d"))
- csFactor=0.9;armyc2.c2sd.JavaTacticalRenderer.Modifier2.shiftModifierPath(tg,pt0,pt1,ptLast,ptNextToLast);if(tg.getSymbologyStandard()===1){switch(linetype){case 14000000:case 15000003:pts=new Array(4);for(j=0;j<4;j++)
- pts[j]=tg.Pixels.get(j);ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble2(pts,4);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-0.125*csFactor,ptCenter,ptCenter,false);break;case 21200000:case 21300000:case 21400000:pt0=tg.Pixels.get(1);pt1=tg.Pixels.get(2);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 211700000:case 21500000:pt0=tg.Pixels.get(2);pt1=tg.Pixels.get(3);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 211000000:pt0=tg.Pixels.get(4);pt1=tg.Pixels.get(5);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 211100000:pt0=tg.Pixels.get(0);pt1=tg.Pixels.get(1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 211400000:case 211600000:case 211900000:case 212100000:pt0=tg.Pixels.get(13);pt1=tg.Pixels.get(14);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 21600000:pt0=tg.Pixels.get(13);pt1=tg.Pixels.get(14);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"C",2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;case 212300000:case 212300001:pt0=tg.Pixels.get(26);pt1=tg.Pixels.get(27);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,-0.125*csFactor,pt0,pt1,new Boolean(true));break;default:break;}}
- switch(linetype){case 212600000:case 212500000:pt0=tg.Pixels.get(13);pt1=tg.Pixels.get(0);stringWidth=metrics.stringWidth(label);if(pt0.x<pt1.x)
- stringWidth=-stringWidth;pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt1,0.75*stringWidth);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,0,pt0,pt1,new Boolean(true));break;case 211200000:pt0=tg.Pixels.get(0);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(5),tg.Pixels.get(6),0);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt0,-10);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),2,0,pt0,pt1,new Boolean(true));break;case 211210000:pt0=tg.Pixels.get(3);pt1=tg.Pixels.get(6);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt0,-10);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),2,0,pt0,pt1,new Boolean(true));break;case 24322200:ptLeft=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(1),0);ptRight=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(2),tg.Pixels.get(3),0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-3*csFactor,ptLeft,ptRight,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,-2*csFactor,ptLeft,ptRight,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,"MIN ALT: "+tg.get_H(),2,-1*csFactor,ptLeft,ptRight,false,"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,"MAX ALT: "+tg.get_H1(),2,0,ptLeft,ptRight,false,"H1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,"Grids: "+tg.get_H2(),2,1*csFactor,ptLeft,ptRight,false,"H2");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,"EFF: "+tg.get_DTG(),2,2*csFactor,ptLeft,ptRight,false,"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG1(),2,3*csFactor,ptLeft,ptRight,false,"W1");break;case 24322300:ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble2(tg.Pixels.toArray(),tg.Pixels.size());armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-3*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,-2*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MIN ALT: "+tg.get_H(),3,-1*csFactor,ptCenter,ptCenter,new Boolean(false),"H");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"MAX ALT: "+tg.get_H1(),3,0,ptCenter,ptCenter,new Boolean(false),"H1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"Grids: "+tg.get_H2(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false),"H2");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,"EFF: "+tg.get_DTG(),3,2*csFactor,ptCenter,ptCenter,new Boolean(false),"W");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG1(),3,3*csFactor,ptCenter,ptCenter,new Boolean(false),"W1");break;case 24311000:case 24312000:case 15000002:ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble2(tg.Pixels.toArray(),tg.Pixels.size());armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));break;case 24321300:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:ptCenter=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(Math.floor(tg.Pixels.size()/2)),0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(false));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddOffsetModifier(tg,tg.get_DTG(),1,-1*csFactor,Math.floor(tg.Pixels.size()/2),0,4,"left");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddOffsetModifier(tg,tg.get_DTG1(),1,0,Math.floor(tg.Pixels.size()/2),0,4,"left");break;case 24323300:case 24324300:case 24325300:rfaLines=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getRFALines(tg);ptCenter=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(51),0);switch(rfaLines){case 3:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");break;case 2:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(true));if(tg.get_Name()!==null&&!tg.get_Name().isEmpty())
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(true));else
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");break;default:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,ptCenter,ptCenter,new Boolean(true));break;}
- case 24353000:case 24363000:rfaLines=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getRFALines(tg);ptCenter=armyc2.c2sd.JavaLineArray.lineutility.CalcCenterPointDouble2(tg.Pixels.toArray(),tg.Pixels.size());switch(rfaLines){case 4:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_H1(),3,2*csFactor,ptCenter,ptCenter,new Boolean(true),"H1");break;case 3:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-1*csFactor,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0,ptCenter,ptCenter,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,1*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");break;case 2:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,-0.5*csFactor,ptCenter,ptCenter,new Boolean(true));if(tg.get_Name()!==null&&!tg.get_Name().isEmpty())
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(true));else
- armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_DTG()+dash+tg.get_DTG1(),3,0.5*csFactor,ptCenter,ptCenter,new Boolean(true),"W+W1");break;default:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,ptCenter,ptCenter,new Boolean(true));break;}
- break;case 21100000:for(j=0;j<tg.Pixels.size();j++){if(tg.Pixels.get(j).style===14){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,j,j+1);break;}}
- break;case 21600000:for(j=0;j<tg.Pixels.size();j++){if(tg.Pixels.get(j).style===14){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,2,0,pt0,pt1,new Boolean(true));break;}}
- break;case 22612000:case 22623000:case 22612001:case 22623001:if(ptLast.x<pt0.x){pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptLast);ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}
- stringWidth=metrics.stringWidth(label);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pt1.x-=stringWidth/1.5;pt1.y-=Math.floor(font.getSize()/2);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(false));pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptLast);pt1.x+=stringWidth/1.5;pt1.y-=Math.floor(font.getSize()/2);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt1,pt1,new Boolean(false));break;case 24323200:case 24324200:case 24325200:rfaLines=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getRFALines(tg);pt0=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(1),0);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(2),tg.Pixels.get(3),0);switch(rfaLines){case 3:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-1*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,0,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,1*csFactor,pt0,pt1,false,"W+W1");break;case 2:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-0.5*csFactor,pt0,pt1,false);if(tg.get_Name()!==null&&!tg.get_Name().isEmpty()){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,0.5*csFactor,pt0,pt1,false);}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,0.5*csFactor,pt0,pt1,false,"W+W1");}
- break;default:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,0,pt0,pt1,false);break;}
- break;case 24352000:case 24362000:rfaLines=armyc2.c2sd.JavaTacticalRenderer.Modifier2.getRFALines(tg);pt0=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(1),0);pt1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(2),tg.Pixels.get(3),0);switch(rfaLines){case 4:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-1*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,0,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,1*csFactor,pt0,pt1,false,"W+W1");armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_H1(),2,2*csFactor,pt0,pt1,false,"H1");break;case 3:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-1*csFactor,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,0,pt0,pt1,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,1*csFactor,pt0,pt1,false,"W+W1");break;case 2:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,-0.5*csFactor,pt0,pt1,false);if(tg.get_Name()!==null&&!tg.get_Name().isEmpty()){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,0.5*csFactor,pt0,pt1,false);}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_DTG()+dash+tg.get_DTG1(),2,0.5*csFactor,pt0,pt1,false,"W+W1");}
- break;default:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,0,pt0,pt1,false);break;}
- break;case 24321200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:ptLeft=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(0),tg.Pixels.get(1),0);ptRight=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(tg.Pixels.get(2),tg.Pixels.get(3),0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,label,2,0,ptLeft,ptRight,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier2(tg,tg.get_Name(),2,1*csFactor,ptLeft,ptRight,false);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,tg.get_Name(),3,1*csFactor,ptCenter,ptCenter,new Boolean(false));pt0=tg.Pixels.get(0);pt1=tg.Pixels.get(1);pt2=tg.Pixels.get(2);pt3=tg.Pixels.get(3);if(tg.get_Client().equalsIgnoreCase("ge")){pt0.x-=Math.floor(font.getSize()/2);pt2.x-=Math.floor(font.getSize()/2);}
- if(!tg.get_Client().equalsIgnoreCase("ge")){armyc2.c2sd.JavaTacticalRenderer.clsUtility.shiftModifiersLeft(pt0,pt3,12.5);armyc2.c2sd.JavaTacticalRenderer.clsUtility.shiftModifiersLeft(pt1,pt2,12.5);}
- if(ptLeft.x===ptRight.x)
- ptRight.x+=1;if(ptLeft.x<ptRight.x){armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier(tg,tg.get_DTG(),1,0,pt0,pt3);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier(tg,tg.get_DTG1(),1,1*csFactor,pt0,pt3);}else{armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier(tg,tg.get_DTG(),1,0,pt2,pt1);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifier(tg,tg.get_DTG1(),1,1,pt2,pt1);}
- break;case 24326100:case 24326101:armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,0,1,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,1,2,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,2,3,new Boolean(true));armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralModifier(tg,label,2,0,3,0,new Boolean(true));break;case 24326200:pt0=tg.Pixels.get(0);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt0,pt0,new Boolean(true));pt0=tg.Pixels.get(25);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt0,pt0,new Boolean(true));pt0=tg.Pixels.get(50);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt0,pt0,new Boolean(true));pt0=tg.Pixels.get(75);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddIntegralAreaModifier(tg,label,3,0,pt0,pt0,new Boolean(true));break;case 243111000:if(tg.get_H1()!==null&&tg.get_H1().equals("")===false){H1=tg.get_H1().$plit(",");for(j=0;j<H1.length;j++){if(tg.Pixels.size()>j*102+25){pt0=tg.Pixels.get(j*102+25);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddAreaModifier(tg,"ALT "+H1[j],3,0,pt0,pt0);}}}
- break;case 243112000:if(tg.get_H1()!==null&&tg.get_H1().equals("")===false){H1=tg.get_H1().$plit(",");for(j=0;j<H1.length;j++){if(tg.Pixels.size()>j*203+151){pt0=tg.Pixels.get(j*203+151);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddAreaModifier(tg,"ALT "+H1[j],3,0,pt0,pt0);}}}
- break;default:return;}
- g2d.dispose();g2d=null;}
- catch(exc)
- {if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"AddModifiers2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddModifiers2",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers=function(tg,g2d){try{var id=new armyc2.c2sd.graphics2d.AffineTransform();id.setToIdentity();g2d.setTransform(id);var font=g2d.getFont();var j=0;var modifier=null;g2d.setBackground(armyc2.c2sd.renderer.utilities.Color.white);var pt=null;var theta=0;var stringWidth=0;var stringHeight=0;var metrics=g2d.getFontMetrics();var s="";var x=0;var y=0;var pt1=null;var pt2=null;var quadrant=-1;for(j=0;j<tg.modifiers.size();j++){modifier=tg.modifiers.get(j);var lineFactor=modifier.lineFactor;s=modifier.text;var x1=0;var y1=0;var x2=0;var y2=0;pt=modifier.textPath[0];x1=pt.x;y1=pt.y;pt=modifier.textPath[1];x2=pt.x;y2=pt.y;theta=Math.atan2(y2-y1,x2-x1);var midPt;if(x1>x2){theta-=3.141592653589793;}
- switch(modifier.type){case 1:g2d.rotate(theta,x1,y1);stringWidth=metrics.stringWidth(s);stringHeight=font.getSize();if(x1<x2||(x1===x2&&y1>y2)){x=Math.floor(x1)-stringWidth;y=Math.floor(y1)-Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=Math.floor(y1)+Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);}else{x=Math.floor(x1);y=Math.floor(y1)-Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=Math.floor(y1)+Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);}
- break;case 2:midPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2((x1+x2)/2,(y1+y2)/2);g2d.rotate(theta,midPt.x,midPt.y);stringWidth=metrics.stringWidth(s);stringHeight=font.getSize();x=Math.floor(midPt.x)-Math.floor(stringWidth/2);y=Math.floor(midPt.y)-Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=Math.floor(midPt.y)+(Math.floor(stringHeight/2))+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);break;case 3:g2d.rotate(0,x1,y1);stringWidth=metrics.stringWidth(s);stringHeight=font.getSize();x=Math.floor(x1)-Math.floor(stringWidth/2);y=Math.floor(y1)-Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=Math.floor(y1)+(Math.floor(stringHeight/2))+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);break;case 4:if(tg.Pixels.size()>=14){pt1=tg.Pixels.get(3);pt2=tg.Pixels.get(10);quadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pt1,pt2);theta=Math.atan2(pt2.y-pt1.y,pt2.x-pt1.x);switch(quadrant){case 1:theta+=1.5707963267948966;break;case 2:theta-=1.5707963267948966;break;case 3:theta-=1.5707963267948966;break;case 4:theta+=1.5707963267948966;break;default:break;}
- g2d.rotate(theta,x1,y1);stringWidth=metrics.stringWidth(s);stringHeight=font.getSize();x=Math.floor(x1)-Math.floor(stringWidth/2);y=Math.floor(y1)-Math.floor(stringHeight/2)+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=Math.floor(y1)+(Math.floor(stringHeight/2))+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);}else{stringWidth=metrics.stringWidth(s);stringHeight=font.getSize();x=Math.floor(tg.Pixels.get(0).x);y=Math.floor(tg.Pixels.get(0).y);g2d.setColor(tg.get_FontBackColor());g2d.clearRect(x,y,stringWidth,stringHeight);y=y+(Math.floor(stringHeight/2))+Math.floor((lineFactor*stringHeight));g2d.setColor(tg.get_TextColor());g2d.drawString(s,x,y);}
- break;default:break;}
- g2d.setTransform(id);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"DisplayModifiers",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DisplayModifiers",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.BuildModifierShape=function(tg,pt0,pt1,stringWidth,stringHeight,lineFactor,isTextFlipped){var modifierFill=null;try{var ptTemp0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);var ptTemp1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);if(isTextFlipped===true)
- lineFactor+=1;if(lineFactor<0){ptTemp0=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,2,-lineFactor*stringHeight);ptTemp1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,2,-lineFactor*stringHeight);}
- if(lineFactor>0){ptTemp0=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,3,lineFactor*stringHeight);ptTemp1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,3,lineFactor*stringHeight);}
- if(ptTemp0.y===ptTemp1.y){ptTemp0.y+=1;}
- var pt3=null;var pt4=null;var pt5=null;var pt6=null;var pt7=null;pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ptTemp0,ptTemp1,-stringWidth);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptTemp1,ptTemp0,pt3,0,Math.floor(stringHeight/2));pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptTemp1,ptTemp0,pt3,1,Math.floor(stringHeight/2));pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptTemp1,ptTemp0,ptTemp0,1,Math.floor(stringHeight/2));pt7=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(ptTemp1,ptTemp0,ptTemp0,0,Math.floor(stringHeight/2));modifierFill=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER_FILL);modifierFill.moveTo(pt4);modifierFill.lineTo(pt5);modifierFill.lineTo(pt6);modifierFill.lineTo(pt7);modifierFill.lineTo(pt4);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"BuildModifierShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside BuildModifierShape",exc));}else{throw exc;}}
- return modifierFill;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetIntegralTextShapes=function(tg,g2d,shapes){try{if(tg.Pixels===null||shapes===null)
- return;var hmap=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getMSRSegmentColors(tg);var color=null;var shape=null;var segShape=null;g2d.setFont(tg.get_Font());var j=0;var affiliation=null;var metrics=g2d.getFontMetrics();var echelonSymbol=null;var stringWidthEchelonSymbol=0;var stringWidthENY=0;var lineTooShort=false;var ptEchelonStart=null;var ptEchelonEnd=null;var midpt;var ptENY0Start=null;var ptENY0End=null;var ptENY1Start;var ptENY1End;var pt0=null;var pt1=null;var dist=0;var stroke=null;switch(tg.get_LineType()){case 22121000:echelonSymbol=tg.get_EchelonSymbol();shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setLineColor(tg.get_LineColor());shape.set_Style(tg.get_LineStyle());affiliation=tg.get_Affiliation();stroke=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getLineStroke(tg.get_LineThickness(),shape.get_Style(),1,1);shape.setStroke(stroke);if(tg.get_Affiliation()!==null&&tg.get_Affiliation().equals("H")){stringWidthENY=metrics.stringWidth(tg.get_N());}
- if(echelonSymbol!==null&&!echelonSymbol.isEmpty())
- stringWidthEchelonSymbol=metrics.stringWidth(echelonSymbol);for(j=0;j<tg.Pixels.size()-1;j++){segShape=null;if(hmap!==null){if(hmap.containsKey(new Integer(j))){color=hmap.get(new Integer(j));segShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);segShape.setLineColor(color);segShape.set_Style(tg.get_LineStyle());segShape.setStroke(stroke);}}
- pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);lineTooShort=armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetBoundarySegmentTooShort(tg,g2d,j);if(segShape!==null)
- segShape.moveTo(pt0);else
- shape.moveTo(pt0);if(lineTooShort||tg.get_Client().equals("ge")){if(segShape!==null){segShape.lineTo(pt1);shapes.add(segShape);continue;}else{shape.lineTo(pt1);continue;}}
- midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);if(stringWidthENY>0){midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,midpt,0);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,midpt,0);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,midpt)-stringWidthENY/1.5;ptENY0Start=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,dist);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,midpt)+stringWidthENY/1.5;ptENY0End=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,dist);if(segShape!==null){segShape.moveTo(pt0);segShape.lineTo(ptENY0Start);segShape.moveTo(ptENY0End);}else{shape.moveTo(pt0);shape.lineTo(ptENY0Start);shape.moveTo(ptENY0End);}}else{if(segShape!==null)
- segShape.moveTo(pt0);else
- shape.moveTo(pt0);}
- if(stringWidthEchelonSymbol>0){midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,midpt)-stringWidthEchelonSymbol/1.5;ptEchelonStart=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,dist);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,midpt)+stringWidthEchelonSymbol/1.5;ptEchelonEnd=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,dist);if(segShape!==null){segShape.lineTo(ptEchelonStart);segShape.moveTo(ptEchelonEnd);}else{shape.lineTo(ptEchelonStart);shape.moveTo(ptEchelonEnd);}}
- if(stringWidthENY>0){midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt0,pt1,0);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,midpt,0);midpt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt1,midpt,0);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,midpt)-stringWidthENY/1.5;ptENY1Start=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt0,dist);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,midpt)+stringWidthENY/1.5;ptENY1End=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt0,dist);if(segShape!==null){segShape.lineTo(ptENY1End);segShape.moveTo(ptENY1Start);segShape.lineTo(pt1);}else{shape.lineTo(ptENY1End);shape.moveTo(ptENY1Start);shape.lineTo(pt1);}}else{if(segShape!==null)
- segShape.lineTo(pt1);else
- shape.lineTo(pt1);}
- if(segShape!==null)
- shapes.add(segShape);}
- shapes.add(shape);break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"GetIntegralTextShapes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetIntegralTextShapes",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.switchDirection=function(direction){var result=-1;switch(direction){case 0:return 1;case 1:return 0;case 2:return 3;case 3:return 2;}
- return result;};armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2=function(tg,g2d,shapes,isTextFlipped,converter){try{if(shapes===null)
- return;if(tg.modifiers===null||tg.modifiers.isEmpty())
- return;var font=null;var j=0;var modifier=null;var fontBackColor=tg.get_FontBackColor();var textColor=tg.get_TextColor();var theta=0;var stringWidth=0;var stringHeight=0;var s="";var x=0;var y=0;var pt0=null;var pt1=null;var pt2=null;var pt3=null;var quadrant=-1;var shape2=null;font=tg.get_Font();if(font===null){font=g2d.getFont();}
- g2d.setFont(font);var metrics=g2d.getFontMetrics();if(fontBackColor!==null){g2d.setBackground(fontBackColor);}else{g2d.setBackground(armyc2.c2sd.renderer.utilities.Color.white);}
- if(textColor===null)
- textColor=tg.get_LineColor();var direction=-1;var glyphPosition=null;for(j=0;j<tg.modifiers.size();j++){modifier=tg.modifiers.get(j);var lineFactor=modifier.lineFactor;if(modifier.type!==3)
- {lineFactor+=0.25;}
- if(isTextFlipped===true)
- lineFactor=-lineFactor;s=modifier.text;if(s===null||s.equals("")){continue;}
- var bounds=metrics.getTextBounds(s);stringWidth=bounds.width;stringHeight=bounds.height;var x1=0;var y1=0;var x2=0;var y2=0;var dist=0;pt0=modifier.textPath[0];x1=pt0.x;y1=pt0.y;pt1=modifier.textPath[1];x2=pt1.x;y2=pt1.y;theta=Math.atan2(y2-y1,x2-x1);var midPt;if(x1>x2){theta-=3.141592653589793;}
- pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x1,y1);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x2,y2);midPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2((x1+x2)/2,(y1+y2)/2);switch(modifier.type){case 1:dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);direction=2;if(lineFactor>=0)
- direction=2;else
- direction=3;if(tg.get_LineType()===22123000||tg.get_Client().equalsIgnoreCase("ge")){direction=armyc2.c2sd.JavaTacticalRenderer.Modifier2.switchDirection(direction);}
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt0,pt1,direction,lineFactor*stringHeight);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,pt0,pt0,direction,lineFactor*stringHeight);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt3,pt2,-stringWidth/1.5);glyphPosition=new armyc2.c2sd.graphics2d.Point(pt3.x,pt3.y);break;case 2:if(converter!==null){var pt1Geo=converter.PixelsToGeo(new armyc2.c2sd.graphics2d.Point(Math.floor(pt0.x),Math.floor(pt0.y)));var pt2Geo=converter.PixelsToGeo(new armyc2.c2sd.graphics2d.Point(Math.floor(pt1.x),Math.floor(pt1.y)));var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();a12.value=Clazz.newArray(1,0);a21.value=Clazz.newArray(1,0);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo.x,pt1Geo.y),armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2Geo.x,pt2Geo.y),a12,a21);var midPtGeo=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo.x,pt1Geo.y),dist/2,a12.value[0]);var pt2d=new armyc2.c2sd.graphics2d.Point2D(midPtGeo.x,midPtGeo.y);var midPt2D=converter.GeoToPixels(pt2d);midPt.x=midPt2D.getX();midPt.y=midPt2D.getY();}
- x=Math.floor(midPt.x)-Math.floor(Math.floor(stringWidth)/2);y=Math.floor(midPt.y)+Math.floor((stringHeight/2))+Math.floor((lineFactor*stringHeight));if(pt0.x<=pt1.x)
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midPt,pt0,0.5*stringWidth);else
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(midPt,pt1,0.5*stringWidth);if(tg.get_Client().equals("2D"))
- lineFactor+=0.5;if(lineFactor>=0)
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt2,pt2,3,Math.abs((lineFactor)*stringHeight));else
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt2,pt2,2,Math.abs((lineFactor)*stringHeight));if(x1===x2&&y1>y2)
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt2,pt2,1,Math.abs((lineFactor)*stringHeight));if(x1===x2&&y1<y2)
- pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt2,pt2,0,Math.abs((lineFactor)*stringHeight));glyphPosition=new armyc2.c2sd.graphics2d.Point(Math.floor(pt3.x),Math.floor(pt3.y));break;case 3:theta=0;x=x1-stringWidth/4;y=y1+stringHeight/2+1.5*lineFactor*stringHeight;glyphPosition=new armyc2.c2sd.graphics2d.Point(x,y);break;case 4:if(tg.Pixels.size()>=14){pt1=tg.Pixels.get(3);pt2=tg.Pixels.get(10);quadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(pt1,pt2);theta=Math.atan2(pt2.y-pt1.y,pt2.x-pt1.x);if(Math.abs(theta)<0.39269908169872414){if(theta<0){theta-=1.5707963267948966;}
- else{theta+=1.5707963267948966;}}
- switch(quadrant){case 1:theta+=1.5707963267948966;break;case 2:theta-=1.5707963267948966;break;case 3:theta-=1.5707963267948966;break;case 4:theta+=1.5707963267948966;break;default:break;}
- x=Math.floor(x1)-Math.floor(Math.floor(stringWidth)/2);y=Math.floor(y1)-Math.floor(Math.floor(stringHeight)/2)+Math.floor((lineFactor*stringHeight));y=Math.floor(y1)+Math.floor((stringHeight/2))+Math.floor((lineFactor*stringHeight));}else{theta=0;x=Math.floor(tg.Pixels.get(0).x);y=Math.floor(tg.Pixels.get(0).y);x=x-Math.floor(Math.floor(stringWidth)/2);y=y-Math.floor(Math.floor(stringHeight)/2)+Math.floor((lineFactor*stringHeight));y=y+Math.floor((stringHeight/2))+Math.floor((lineFactor*stringHeight));}
- glyphPosition=new armyc2.c2sd.graphics2d.Point(x,y);break;default:break;}
- shape2=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER_FILL);shape2.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(0,1,1,3));if(tg.get_TextColor()!==null){shape2.setFillColor(tg.get_TextColor());}else if(tg.get_LineColor()!==null){shape2.setFillColor(tg.get_LineColor());}
- if(tg.get_LineColor()!==null){shape2.setLineColor(tg.get_LineColor());}
- var tl=new armyc2.c2sd.graphics2d.TextLayout(s,font,g2d.getFontMetrics().getFontRenderContext());shape2.setTextLayout(tl);if(converter!==null)
- shape2.setGlyphPosition(glyphPosition);else
- shape2.setGlyphPosition(new armyc2.c2sd.graphics2d.Point2D(0,0));shape2.setModifierString(s);shape2.setModifierStringAngle(theta*180/3.141592653589793);if(shape2!==null){shapes.add(shape2);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"DisplayModifiers2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DisplayModifiers2",exc));}else{throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.Modifier2.getTextShape=function(g2d,str,font,tx){var tl=null;var frc=null;try{frc=g2d.getFontRenderContext();tl=new armyc2.c2sd.graphics2d.TextLayout(str,font,frc);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"getTextShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getTextShape",exc));}else{throw exc;}}
- return tl.getOutline(tx);};armyc2.c2sd.JavaTacticalRenderer.Modifier2.createTextOutline=function(originalText){var siOutline=null;try{var outline=originalText.getShape();siOutline=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER_FILL);siOutline.setShape(outline);if(originalText.getFillColor().getRed()===255&&originalText.getFillColor().getGreen()===255&&originalText.getFillColor().getBlue()===255)
- siOutline.setLineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);else
- siOutline.setLineColor(armyc2.c2sd.renderer.utilities.Color.WHITE);var width=armyc2.c2sd.renderer.utilities.RendererSettings.getInstance().getTextOutlineWidth();siOutline.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(width,1,1,3));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.Modifier2._className,"createTextOutline",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside createTextOutline",exc));}else{throw exc;}}
- return siOutline;};armyc2.c2sd.JavaTacticalRenderer.Modifier2._className="Modifier2";armyc2.c2sd.JavaTacticalRenderer.Modifier2.toEnd=1;armyc2.c2sd.JavaTacticalRenderer.Modifier2.aboveMiddle=2;armyc2.c2sd.JavaTacticalRenderer.Modifier2.area=3;armyc2.c2sd.JavaTacticalRenderer.Modifier2.screen=4;armyc2.c2sd.JavaTacticalRenderer.Modifier2.fillAlphaCanObscureText=50;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.P1=function(){this.start=0;this.end_Renamed=0;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.TGLight=function(){this.LatLongs=null;this.Pixels=null;this.modifiers=null;this.tp=null;this.maskOff=false;this.font=null;this.lineType=0;this.lineStyle=0;this.lineColor=null;this.fillStyle=0;this.fillColor=null;this.fontBackColor=null;this.textColor=null;this.lineThickness=0;this.t="";this.client="";this.t1="";this.h="";this.h1="";this.y="";this.n="ENY";this.h2="";this.w="";this.w1="";this.affiliation=null;this.echelon=null;this.echelonSymbol="";this.symbolId=null;this.status=null;this.visibleModifiers=false;this.visibleLabels=false;this._SymbologyStandard=0;this._useLineInterpolation=false;this.fontBackColor=armyc2.c2sd.renderer.utilities.Color.WHITE;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_LatLongs=function(){return this.LatLongs;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_LatLongs=function(value){this.LatLongs=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Pixels=function(){return this.Pixels;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Pixels=function(value){this.Pixels=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Modifiers=function(){return this.modifiers;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Modifiers=function(value){this.modifiers=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_TexturePaint=function(value){this.tp=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_TexturePaint=function(){return this.tp;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Font=function(value){this.font=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Font=function(){return this.font;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_LineType=function(value){this.lineType=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_LineType=function(){return this.lineType;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_LineStyle=function(value){this.lineStyle=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_LineStyle=function(){return this.lineStyle;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_LineColor=function(){return this.lineColor;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_LineColor=function(value){this.lineColor=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_FillStyle=function(){return this.fillStyle;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Fillstyle=function(value){this.fillStyle=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_FillColor=function(){return this.fillColor;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_FillColor=function(value){this.fillColor=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_FontBackColor=function(){return this.fontBackColor;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_FontBackColor=function(value){this.fontBackColor=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_TextColor=function(){return this.textColor;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_TextColor=function(value){this.textColor=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_LineThickness=function(){return this.lineThickness;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_LineThickness=function(value){this.lineThickness=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Name=function(){if(this.visibleModifiers)
- return this.t;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Client=function(){return this.client;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_client=function(value){this.client=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Name=function(value){this.t=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_T1=function(){if(this.visibleModifiers)
- return this.t1;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_T1=function(value){this.t1=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_H=function(){if(this.visibleModifiers||this.lineType===24311000)
- return this.h;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_H=function(value){this.h=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Location=function(){if(this.visibleModifiers)
- return this.y;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Location=function(value){this.y=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_H1=function(){if(this.visibleModifiers)
- return this.h1;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_H1=function(value){this.h1=value.toString();};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_N=function(){return this.n;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_N=function(value){this.n=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_H2=function(){if(this.visibleModifiers||this.lineType===24311000)
- return this.h2;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_H2=function(value){this.h2=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_DTG=function(){if(this.visibleModifiers)
- return this.w;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_DTG=function(value){this.w=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_DTG1=function(){if(this.visibleModifiers)
- return this.w1;else
- return"";};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_DTG1=function(value){this.w1=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Affiliation=function(){return this.affiliation;};this.set_Affiliation=function(value){this.affiliation=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Echelon=function(){return this.echelon;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Echelon=function(value){this.echelon=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_EchelonSymbol=function(){return this.echelonSymbol;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_EcheclonSymbol=function(value){this.echelonSymbol=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_SymbolId=function(){return this.symbolId;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_Status=function(){return this.status;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_Status=function(value){this.status=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_SymbolId=function(value){try{this.symbolId=value;var letter;if(this.symbolId.length===15){this.status=this.symbolId.substring(3,4);if(this.status.equals("A")&&!value.equalsIgnoreCase("BS_AREA--------")){this.lineStyle=1;}
- this.affiliation=this.symbolId.substring(1,2);this.echelon=this.symbolId.substring(11,12);if(this.echelon.equals("M"))
- this.echelonSymbol="XXXXXX";else if(this.echelon.equals("L"))
- this.echelonSymbol="XXXXX";else if(this.echelon.equals("K"))
- this.echelonSymbol="XXXX";else if(this.echelon.equals("J"))
- this.echelonSymbol="XXX";else if(this.echelon.equals("I"))
- this.echelonSymbol="XX";else if(this.echelon.equals("H"))
- this.echelonSymbol="X";else if(this.echelon.equals("G"))
- this.echelonSymbol="III";else if(this.echelon.equals("F"))
- this.echelonSymbol="II";else if(this.echelon.equals("E"))
- this.echelonSymbol="I";else if(this.echelon.equals("D")){letter=String.fromCharCode(9679);this.echelonSymbol=(letter)+(letter)+(letter);}else if(this.echelon.equals("C")){letter=String.fromCharCode(9679);this.echelonSymbol=(letter)+(letter);}else if(this.echelon.equals("B")){letter=String.fromCharCode(9679);this.echelonSymbol=(letter);}else if(this.echelon.equals("A")){letter=String.fromCharCode(216);this.echelonSymbol=(letter);}}}
- catch(exc)
- {if(Clazz.instanceOf(exc))
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.TGLight._className,"set_SymbolId",exc);}
- else
- {throw exc;}}};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_VisibleModifiers=function(value){this.visibleModifiers=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_VisibleModifiers=function(){return this.visibleModifiers;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_VisibleLabels=function(value){this.visibleLabels=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_VisibleLabels=function(){return this.visibleLabels;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.setSymbologyStandard=function(standard){this._SymbologyStandard=standard;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.getSymbologyStandard=function(){return this._SymbologyStandard;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.get_UseLineInterpolation=function(){return this._useLineInterpolation;};armyc2.c2sd.JavaTacticalRenderer.TGLight.prototype.set_UseLineInterpolation=function(value){this._useLineInterpolation=value;};armyc2.c2sd.JavaTacticalRenderer.TGLight._className="TGLight";var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility={GetPartitions:function(segments,partitions){try{var j=0;var nextSegment=false;var p1=new armyc2.c2sd.JavaTacticalRenderer.P1();if(segments[0]===false){return 0;}
- if(partitions!==null){partitions.clear();}else{return 0;}
- p1.start=0;for(j=0;j<segments.length-1;j++){nextSegment=segments[j+1];if(nextSegment===false){p1.end_Renamed=j;partitions.add(p1);p1=new armyc2.c2sd.JavaTacticalRenderer.P1();p1.start=j+1;}}
- p1.end_Renamed=j;partitions.add(p1);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"GetPartitions",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetPartitions",exc));}else{throw exc;}}
- return partitions.size();},DrawGoodChannel2:function(fromSegment,toSegment,pixels,lineType,channelWidth,bolLastSegment,shapes,channelPoints,distanceToChannelPoint,rev){var returnValue=0;try{var lineType2;var channelPixels=null;switch(lineType){case 23111001:lineType2=23111001;case 22123000:case 22123001:case 231111000:case 231113000:case 231112000:case 231114000:case 231115000:case 231116000:case 15000000:case 231117100:case 231117101:case 231117200:case 231117201:case 231117300:case 231117301:lineType2=lineType;break;case 22320000:if(fromSegment===0){lineType2=231113002;}else{lineType2=231113001;}
- break;case 22521420:if(fromSegment===0){lineType2=231113002;}else{lineType2=231113001;}
- break;case 22521410:if(fromSegment===0){lineType2=231113002;}else{lineType2=231113001;}
- break;case 21700000:lineType2=231113003;break;case 21710000:lineType2=231113003;break;default:lineType2=231113001;break;}
- if(bolLastSegment===true){if(fromSegment!==0){switch(lineType){case 22320000:lineType2=22320001;break;case 22521420:lineType2=22521421;break;case 22521410:lineType2=22521411;break;default:lineType2=lineType;break;}}else{lineType2=lineType;}}
- if(fromSegment<0){return returnValue;}
- if(toSegment<0){return returnValue;}
- if(toSegment<fromSegment){return returnValue;}
- var j;var lineCount;var numPoints;var counter;var goodUpperPixels;var goodLowerPixels;numPoints=toSegment-fromSegment+2;goodUpperPixels=Clazz.newArray(2*numPoints,0);goodLowerPixels=Clazz.newArray(2*numPoints,0);counter=0;for(j=fromSegment;j<toSegment+2;j++){goodUpperPixels[counter]=pixels[2*j];goodUpperPixels[counter+1]=pixels[2*j+1];goodLowerPixels[counter]=pixels[2*j];goodLowerPixels[counter+1]=pixels[2*j+1];counter=counter+2;}
- lineCount=armyc2.c2sd.JavaLineArray.CELineArray.CGetLineCountDouble(goodUpperPixels,numPoints,lineType2,channelWidth,rev);channelPixels=Clazz.newArray(3*lineCount,0);var pt=null;lineCount=armyc2.c2sd.JavaLineArray.CELineArray.CGetChannel2Double(goodUpperPixels,goodLowerPixels,channelPixels,numPoints,numPoints,lineType2,Math.floor(channelWidth/2),Math.floor(distanceToChannelPoint),shapes,rev);if(shapes===null&&channelPixels!==null){for(j=0;j<Math.floor(channelPixels.length/3);j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(channelPixels[3*j],channelPixels[3*j+1],Math.floor(channelPixels[3*j+2]));if(j===Math.floor(channelPixels.length/3)-1){pt.style=5;}
- channelPoints.add(pt);}}
- if(lineCount>0){returnValue=channelPixels.length;}else{returnValue=0;}
- if(lineCount>0){channelPixels[lineCount-1]=5;}
- goodUpperPixels=null;goodLowerPixels=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"DrawGoodChannel2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawGoodChannel2",exc));}else{throw exc;}}
- return returnValue;},DrawSegments:function(pixels,partitions,linetype,channelWidth,shapes,channelPoints,distanceToChannelPoint,rev){try{var j=0;var n=0;for(j=0;j<partitions.size()-1;j++){n=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawGoodChannel2(partitions.get(j).start,partitions.get(j).end_Renamed,pixels,linetype,channelWidth,false,shapes,channelPoints,distanceToChannelPoint,rev);}
- n=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawGoodChannel2(partitions.get(j).start,partitions.get(j).end_Renamed,pixels,linetype,channelWidth,true,shapes,channelPoints,distanceToChannelPoint,rev);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"DrawSegments",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawSegments",exc));}else{throw exc;}}
- return;},DrawChannel:function(pixels,linetype,tg,shapes,channelPoints,rev){try{armyc2.c2sd.JavaLineArray.lineutility.adjustCATKBYFIREControlPoint(linetype,pixels,45);var j=0;var pixels2=Clazz.newArray(pixels.size()*2,0);for(j=0;j<pixels.size();j++){pixels2[2*j]=pixels.get(j).x;pixels2[2*j+1]=pixels.get(j).y;}
- armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawChannel2(pixels2,linetype,tg,shapes,channelPoints,rev);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"DrawChannel",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawChannel",exc));}else{throw exc;}}},GetPartitions2:function(tg){var partitions=null;try{var pixels=Clazz.newArray(tg.Pixels.size()*2,0);for(var j=0;j<tg.Pixels.size();j++){pixels[2*j]=tg.Pixels.get(j).x;pixels[2*j+1]=tg.Pixels.get(j).y;}
- var segments=Clazz.newArray(Math.floor(pixels.length/2)-1,false);if(segments.length===0)
- return null;var factor=3;armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetSegments(pixels,segments,factor);partitions=new java.util.ArrayList();armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions(segments,partitions);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"GetPartitions2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetPartitions2",exc));}else{throw exc;}}
- return partitions;},DrawChannel2:function(pixels,linetype,tg,shapes,channelPoints,rev){try{var distanceToChannelPoint=new armyc2.c2sd.JavaLineArray.ref();var bolAnimation=false;var j=0;var pixels2=null;var channelWidth=0;var partitions=null;var numPoints=0;distanceToChannelPoint.value=Clazz.newArray(1,0);distanceToChannelPoint.value[0]=20;switch(linetype){case 22320000:case 22521410:case 21700000:case 21710000:case 22521100:case 22521200:case 22521300:case 22521420:armyc2.c2sd.JavaTacticalRenderer.clsUtility.ReorderPixels(pixels);if(linetype===22320000){channelWidth=Math.floor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.ChannelWidth(pixels,distanceToChannelPoint)/2);var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();pt0.x=pixels[pixels.length-4];pt0.y=pixels[pixels.length-3];pt1.x=pixels[pixels.length-6];pt1.y=pixels[pixels.length-5];pt0=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,Math.floor(channelWidth/8));pixels[pixels.length-4]=pt0.x;pixels[pixels.length-3]=pt0.y;}
- numPoints=Math.floor(pixels.length/2);if(numPoints<3){return;}
- channelWidth=Math.floor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.ChannelWidth(pixels,distanceToChannelPoint)/2);numPoints=Math.floor(pixels.length/2);pixels2=Clazz.newArray(pixels.length-2,0);for(j=0;j<numPoints;j++){if(j<numPoints-1){pixels2[2*j]=pixels[2*j];pixels2[2*j+1]=pixels[2*j+1];}}
- break;case 22123000:case 22123001:if(bolAnimation===true){channelWidth=32;}else{channelWidth=40;}
- pixels2=Clazz.newArray(pixels.length,0);for(j=0;j<pixels.length;j++){pixels2[j]=pixels[j];}
- break;case 231111000:case 231113000:case 231112000:case 231114000:case 231115000:case 231116000:channelWidth=30;if(armyc2.c2sd.JavaLineArray.Channels.getShiftLines()===true)
- channelWidth=60;pixels2=Clazz.newArray(pixels.length,0);for(j=0;j<pixels.length;j++){pixels2[j]=pixels[j];}
- break;case 15000000:channelWidth=8*tg.Pixels.get(0).style;pixels2=Clazz.newArray(pixels.length,0);for(j=0;j<pixels.length;j++){pixels2[j]=pixels[j];}
- break;case 231117100:case 231117101:case 231117200:case 231117201:case 231117300:case 231117301:channelWidth=110;pixels2=Clazz.newArray(pixels.length,0);for(j=0;j<pixels.length;j++){pixels2[j]=pixels[j];}
- break;default:break;}
- var segments=Clazz.newArray(Math.floor(pixels2.length/2)-1,false);if(segments.length===0)
- return;var factor=3;armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetSegments(pixels2,segments,factor);partitions=new java.util.ArrayList();armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions(segments,partitions);armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawSegments(pixels2,partitions,linetype,channelWidth,shapes,channelPoints,distanceToChannelPoint.value[0],rev);pixels2=null;partitions=null;segments=null;return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility._className,"DrawChannel2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawChannel2",exc));}else{throw exc;}}},_className:"clsChannelUtility"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.clsMETOC={IsWeather:function(symbolID){try{if(symbolID===null)
- return-1;if(symbolID.length!==15)
- return-1;var strLine=symbolID;var str1;var str2;var str3;var str4;var str5;var str6;var str7;var str10;var c0=strLine.substring(0,1);var c1=strLine.substring(1,2);var c2=strLine.substring(2,3);str1=strLine.substring(4,5);str2=strLine.substring(4,6);str3=strLine.substring(4,7);str4=strLine.substring(4,8);str5=strLine.substring(4,9);str6=strLine.substring(3,9);str7=strLine.substring(3,10);str10=strLine.substring(3,13);if(str3.equals("SLH")&&c0.equals("G")&&c2.equals("G"))
- return 22612000;if(str3.equals("SLB")&&c0.equals("G")&&c2.equals("G"))
- return 22623000;if(c0.equals("W")&&c1.equals("A")){if(str7.equals("DPXSQ--")){return 31143000;}
- if(str7.equals("DPFC---")){return 31131000;}
- if(str7.equals("DPFC-FG")){return 31131200;}
- if(str7.equals("DPFC-FY")){return 31131300;}
- if(str7.equals("DPFW-FG")){return 31132200;}
- if(str7.equals("DPFW-FY")){return 31132300;}
- if(str7.equals("DPFOU--")){return 31133100;}
- if(str7.equals("DPFO-FY")){return 31133200;}
- if(str7.equals("DPFSU--")){return 31134100;}
- if(str7.equals("DPFS-FG")){return 31134200;}
- if(str7.equals("DPFS-FY")){return 31134300;}
- if(str7.equals("DPXIL--")){return 31144000;}
- if(str7.equals("DPXSH--")){return 31145000;}
- if(str7.equals("DPXITCZ")){return 31146000;}
- if(str7.equals("DPXCV--")){return 31147000;}
- if(str7.equals("DPXITD-")){return 31148000;}
- if(str7.equals("DWJ----")){return 31430000;}
- if(str7.equals("DWS----")){return 31440000;}
- if(str7.equals("DBAIF--")){return 31710000;}
- if(str7.equals("DBAMV--")){return 31720000;}
- if(str7.equals("DBATB--")){return 31730000;}
- if(str7.equals("DBAI---")){return 31740000;}
- if(str7.equals("DBALPNC")){return 31750000;}
- if(str7.equals("DBALPC-")){return 31751000;}
- if(str7.equals("DBAFP--")){return 31760000;}
- if(str7.equals("DBAT---")){return 31770000;}
- if(str7.equals("DBAFG--")){return 31780000;}
- if(str7.equals("DBAD---")){return 31790000;}
- if(str7.equals("DBAFF--")){return 317100000;}
- if(str7.equals("DIPIB--")){return 31810000;}
- if(str7.equals("DIPCO--")){return 31820000;}
- if(str7.equals("DIPIS--")){return 31830000;}
- if(str7.equals("DIPIT--")){return 31840000;}
- if(str7.equals("DIPID--")){return 31850000;}
- if(str7.equals("DIPTH--")){return 31860000;}
- if(str7.equals("DIPFF--")){return 31870000;}
- if(str3.equals("PXR")){return 31142000;}
- if(str3.equals("PXT")){return 31141000;}
- if(str4.equals("PFCU")){return 31131100;}
- if(str3.equals("PFO")){return 31133000;}
- if(str3.equals("PFS")){return 31134000;}
- if(str4.equals("PFWU")){return 31132100;}
- if(str3.equals("PFW")){return 31132000;}
- if(str3.equals("PFC")){return 31131000;}}
- if(c0.equals("W")&&c1.equals("O")){if(str10.equals("DHCF----L-")){return 32225100;}
- if(str10.equals("DHCF-----A")){return 32225200;}
- if(str10.equals("DHPBA---L-")){return 32231400;}
- if(str10.equals("DHPBA----A")){return 32231500;}
- if(str10.equals("DHPMO---L-")){return 32233400;}
- if(str10.equals("DHPMO----A")){return 32233500;}}
- if(c0.equals("W")&&c1.equals("O")){if(str7.equals("DIDID--")){return 32134000;}
- if(str7.equals("DILOV--")){return 32151000;}
- if(str7.equals("DILUC--")){return 32152000;}
- if(str7.equals("DILOR--")){return 32153000;}
- if(str7.equals("DILIEO-")){return 32154000;}
- if(str7.equals("DILIEE-")){return 32155000;}
- if(str7.equals("DILIER-")){return 32156000;}
- if(str7.equals("DIOC---")){return 32161000;}
- if(str7.equals("DIOCS--")){return 32162000;}
- if(str7.equals("DIOL---")){return 32163000;}
- if(str7.equals("DIOLF--")){return 32164000;}
- if(str7.equals("DHDDL--")){return 32212000;}
- if(str7.equals("DHDDC--")){return 32213000;}
- if(str7.equals("DHDDA--")){return 32214000;}
- if(str7.equals("DHCC---")){return 32221000;}
- if(str7.equals("DHCI---")){return 32222000;}
- if(str7.equals("DHCB---")){return 32223000;}
- if(str7.equals("DHCW---")){return 32224000;}
- if(str7.equals("DHPBP--")){return 32231700;}
- if(str7.equals("-HPFF--")){return 32232400;}
- if(str7.equals("-HHDR--")){return 322510000;}
- if(str7.equals("DHPMD--")){return 32233100;}
- if(str7.equals("DHPMRA-")){return 32233600;}
- if(str7.equals("DHPMRB-")){return 32233700;}
- if(str7.equals("DHPSPA-")){return 32234100;}
- if(str7.equals("DHPSPB-")){return 32234200;}
- if(str7.equals("DHPSPS-")){return 32234300;}
- if(str7.equals("DHABP--")){return 32244200;}
- if(str7.equals("DHALLA-")){return 32246000;}
- if(str7.equals("DHHD---")){return 32253000;}
- if(str7.equals("DHHDF--")){return 32254200;}
- if(str7.equals("DHHDK--")){return 32255200;}
- if(str7.equals("DHHDB--")){return 32259000;}
- if(str7.equals("DHHDD--")){return 322512000;}
- if(str7.equals("DTCCCFE")){return 32272000;}
- if(str7.equals("DTCCCFF")){return 32273000;}
- if(str7.equals("DL-RA--")){return 32530000;}
- if(str7.equals("DMPA---")){return 32680000;}
- if(str7.equals("DL-TA--")){return 32550000;}
- if(str7.equals("DOBVA--")){return 32311000;}
- if(str7.equals("DOBVB--")){return 32312000;}
- if(str7.equals("DOBVC--")){return 32313000;}
- if(str7.equals("DOBVD--")){return 32314000;}
- if(str7.equals("DOBVE--")){return 32315000;}
- if(str7.equals("DOBVF--")){return 32316000;}
- if(str7.equals("DOBVG--")){return 32317000;}
- if(str7.equals("DOBVH--")){return 32318000;}
- if(str7.equals("DOBVI--")){return 32319000;}
- if(str7.equals("DBSF---")){return 32321000;}
- if(str7.equals("DBSG---")){return 32322000;}
- if(str7.equals("DBSM---")){return 32323000;}
- if(str7.equals("DBST---")){return 32324000;}
- if(str7.equals("DGMSR--")){return 32411100;}
- if(str7.equals("DGMSC--")){return 32411200;}
- if(str7.equals("DGMSSVS")){return 32411300;}
- if(str7.equals("DGMSSC-")){return 32411400;}
- if(str7.equals("DGMSSM-")){return 32411500;}
- if(str7.equals("DGMSSF-")){return 32411600;}
- if(str7.equals("DGMSSVF")){return 32411700;}
- if(str7.equals("DGMSIVF")){return 32411800;}
- if(str7.equals("DGMSIF-")){return 32411900;}
- if(str7.equals("DGMSIM-")){return 324111000;}
- if(str7.equals("DGMSIC-")){return 324111100;}
- if(str7.equals("DGMSB--")){return 324111200;}
- if(str7.equals("DGMS-CO")){return 324111300;}
- if(str7.equals("DGMS-PH")){return 324111400;}
- if(str7.equals("DGMS-SH")){return 324111500;}
- if(str7.equals("DGML---")){return 324111600;}
- if(str7.equals("DGMN---")){return 324111700;}
- if(str7.equals("DGMRS--")){return 32412100;}
- if(str7.equals("DGMRM--")){return 32412200;}
- if(str7.equals("DGMRR--")){return 32412300;}
- if(str7.equals("DGMCL--")){return 32413100;}
- if(str7.equals("DGMCM--")){return 32413200;}
- if(str7.equals("DGMCH--")){return 32413300;}
- if(str7.equals("DGMIBA-")){return 32414100;}
- if(str7.equals("DGMIBB-")){return 32414200;}
- if(str7.equals("DGMIBC-")){return 32414300;}
- if(str7.equals("DGMIBD-")){return 32414400;}
- if(str7.equals("DGMIBE-")){return 32414500;}
- if(str7.equals("DGMBCA-")){return 32415100;}
- if(str7.equals("DGMBCB-")){return 32415200;}
- if(str7.equals("DGMBCC-")){return 32415300;}
- if(str7.equals("DGMBTA-")){return 32416100;}
- if(str7.equals("DGMBTB-")){return 32416200;}
- if(str7.equals("DGMBTC-")){return 32416300;}
- if(str7.equals("DGMBTD-")){return 32416400;}
- if(str7.equals("DGMBTE-")){return 32416500;}
- if(str7.equals("DGMBTF-")){return 32416600;}
- if(str7.equals("DGMBTG-")){return 32416700;}
- if(str7.equals("DGMBTH-")){return 32416800;}
- if(str7.equals("DGMBTI-")){return 32416900;}
- if(str7.equals("DL-SA--")){return 32540000;}
- if(str7.equals("DMOA---")){return 32670000;}
- if(str7.equals("DMCC---")){return 32620000;}
- if(str7.equals("DMCA---")){return 32610000;}
- if(str7.equals("DL-ML--")){return 32510000;}
- if(str7.equals("DL-MA--")){return 32520000;}
- if(str7.equals("DMCD---")){return 32630000;}
- if(str7.equals("DL-O---")){return 32560000;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"isWeather",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside isWeather",exc));}else{throw exc;}}
- return-1;},SetMeTOCProperties:function(tg){try{switch(tg.get_LineType()){case 32416200:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(127,255,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(127,255,0));break;case 32416800:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,80,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,80,0));break;case 32416900:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,48,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,48,0));break;case 32414100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(0,0,255));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(0,0,255));break;case 32416700:case 32414400:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,127,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,127,0));break;case 32415300:case 32414500:case 32413300:case 32412300:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,0,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,0,0));break;case 32416500:case 32415200:case 32414300:case 32413200:case 32412200:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,255,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,255,0));break;case 32416100:case 32415100:case 32414200:case 32413100:case 32412100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(0,255,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(0,255,0));break;case 324111700:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(230,230,230));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(230,230,230));break;case 324111600:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(220,220,220));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(220,220,220));break;case 324111500:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,220,220));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,220,220));break;case 324111400:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,190,190));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,190,190));break;case 324111300:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,150,150));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,150,150));break;case 324111200:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,0,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,0,0));break;case 324111100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(200,255,105));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(200,255,105));break;case 324111000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(0,255,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(0,255,0));break;case 32411900:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(25,255,230));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(25,255,230));break;case 32411800:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(0,215,255));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(0,215,255));break;case 32411700:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,255,220));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,255,220));break;case 32411600:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,255,140));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,255,140));break;case 32411500:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,235,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,235,0));break;case 32411400:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,215,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,215,0));break;case 32416600:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,207,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,207,0));break;case 32411300:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,180,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,180,0));break;case 32411200:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(100,130,255));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(100,130,255));break;case 32411100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));break;case 32311000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(26,153,55));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(26,153,55));break;case 32312000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(26,204,77));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(26,204,77));break;case 32416300:case 32313000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(128,255,51));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(128,255,51));break;case 32416400:case 32314000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(204,255,26));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(204,255,26));break;case 32315000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,255,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,255,0));break;case 32316000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,204,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,204,0));break;case 32317000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,128,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,128,0));break;case 32318000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(255,77,0));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,77,0));break;case 32319000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.RED);break;case 32630000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);tg.set_LineThickness(4);break;case 32560000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.ORANGE);break;case 32510000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.MAGENTA);tg.set_LineStyle(1);tg.set_LineThickness(1);break;case 32520000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.MAGENTA);tg.set_LineStyle(1);break;case 32244200:case 32620000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);tg.set_LineStyle(2);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);break;case 322512000:case 32253000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);tg.set_LineStyle(2);tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(0,191,255));break;case 32233500:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));break;case 32233400:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);tg.set_LineThickness(4);break;case 32233100:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));tg.set_LineStyle(1);break;case 32225200:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(154,205,50));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(154,205,50));break;case 32225100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(154,205,50));break;case 32530000:case 32550000:case 32231400:case 32231500:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.MAGENTA);break;case 32680000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.GRAY);break;case 32224000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.WHITE);break;case 32232400:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(245,245,220));tg.set_LineStyle(1);tg.set_LineThickness(3);break;case 32540000:case 32670000:case 32254200:case 32255200:case 32323000:case 32324000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(245,245,220));break;case 32223000:tg.set_LineThickness(5);tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(210,180,140));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(255,245,238));break;case 32214000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.WHITE);break;case 31147000:case 31146000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.ORANGE);break;case 31133200:case 31133000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));break;case 31133100:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));break;case 31132300:case 31132200:case 31132000:tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.RED);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);break;case 31132100:case 31710000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);break;case 31131200:case 31131300:case 31131000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);tg.set_FillColor(armyc2.c2sd.renderer.utilities.Color.BLUE);break;case 31131100:case 31720000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);break;case 31730000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLUE);tg.set_LineStyle(2);break;case 32610000:case 32610001:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.MAGENTA);break;case 32222000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));tg.set_FillColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));break;case 32234300:case 32234301:case 32273000:case 32273001:case 32272000:case 32272001:case 32234100:case 32234101:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);break;case 32321000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(211,211,211));tg.set_FillColor(null);break;case 32322000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(111,111,111));tg.set_FillColor(null);break;case 32259000:tg.set_LineStyle(1);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);tg.set_LineThickness(1);break;case 32234200:case 32234201:tg.set_LineStyle(1);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);break;case 32212000:case 32212001:case 32213000:case 32213001:case 32221000:case 32221001:case 32231700:case 32231701:tg.set_LineThickness(1);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GRAY);break;case 31760000:case 31430000:case 31430001:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);break;case 31770000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);tg.set_LineStyle(3);break;case 32233700:case 32233701:case 32155000:case 32155001:tg.set_LineStyle(1);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);break;case 31850000:case 31850001:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GREEN);break;case 32153000:case 32152000:case 32151000:case 31143000:case 31142000:case 31141000:case 32163000:case 32163001:case 32164000:case 32164001:case 32246000:case 31440000:case 31440001:case 32161000:case 32161001:case 32162000:case 32162001:case 31810000:case 31810001:case 31820000:case 31820001:case 32154000:case 32154001:case 32156000:case 32156001:case 322510000:case 32134000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);break;case 31144000:tg.set_LineStyle(4);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);break;case 31145000:tg.set_LineStyle(3);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);break;case 31860000:case 31860001:case 31830000:case 31830001:tg.set_LineStyle(1);tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.RED);break;case 31840000:case 31840001:tg.set_LineStyle(1);tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(160,32,240));break;case 31790000:case 31740000:tg.set_LineColor(new armyc2.c2sd.renderer.utilities.Color(165,42,42));break;case 31750000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GREEN);break;case 31751000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.GREEN);tg.set_LineStyle(3);break;case 31780000:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.YELLOW);break;case 32233600:case 32233601:tg.set_LineColor(armyc2.c2sd.renderer.utilities.Color.BLACK);break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"SetMeTOCProperties",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetMeTOCProperties",exc));}else{throw exc;}}},ExtrapolatePointFromCurve:function(splinePoints,pt){var pt2=null;try{var dx=0;var dy=0;var m=1;var y=0;var x=pt.x;var j=0;for(j=0;j<splinePoints.size()-1;j++){if(splinePoints.get(j).x<=x&&splinePoints.get(j+1).x>=x){dx=splinePoints.get(j+1).x-splinePoints.get(j).x;dy=splinePoints.get(j+1).y-splinePoints.get(j).y;m=dy/dx;y=splinePoints.get(j).y+(x-splinePoints.get(j).x)*m;pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);return pt2;}
- if(splinePoints.get(j).x>=x&&splinePoints.get(j+1).x<=x){dx=splinePoints.get(j+1).x-splinePoints.get(j).x;dy=splinePoints.get(j+1).y-splinePoints.get(j).y;m=dy/dx;y=splinePoints.get(j).y+(x-splinePoints.get(j).x)*m;pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);return pt2;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"ExtrapolatePointFromCurve",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ExtrapolatePointfromCurve",exc));}else{throw exc;}}
- return pt2;},GetMeTOCShape:function(tg,shapes,rev){try{if(shapes===null)
- return;var lineObject=null;var lineObject2=null;var splinePoints=new java.util.ArrayList();var splinePoints2=new java.util.ArrayList();var d=0;var j=0;var k=0;var l=0;var shape=null;var ptLast=tg.Pixels.get(tg.Pixels.size()-1);var twoSplines=null;var upperSpline=null;var lowerSpline=null;var originalPixels=null;var pixels=null;originalPixels=null;var partitions=null;armyc2.c2sd.JavaTacticalRenderer.clsMETOC.SetMeTOCProperties(tg);switch(tg.get_LineType()){case 31134000:case 31134100:case 31134200:case 31134300:case 31132300:case 31132200:case 31132000:case 31132100:case 31131100:case 31131000:case 31131200:case 31131300:case 31133000:case 31133100:case 31133200:case 31141000:case 31144000:case 31145000:case 31142000:case 31143000:case 31146000:case 31147000:case 31148000:case 31710000:case 31720000:case 31730000:case 31740000:case 31750000:case 31751000:case 31760000:case 31770000:case 31780000:case 31790000:case 317100000:case 31870000:case 32151000:case 32152000:case 32153000:case 32214000:case 32222000:case 32223000:case 32224000:case 32232400:case 32540000:case 32670000:case 32254200:case 32255200:case 32323000:case 32324000:case 32231500:case 32231400:case 32680000:case 32550000:case 32530000:case 322510000:case 32134000:case 32225200:case 32225100:case 32233100:case 32233400:case 32233500:case 32244200:case 32253000:case 32259000:case 322512000:case 32321000:case 32322000:case 32510000:case 32520000:case 32560000:case 32620000:case 32630000:case 32311000:case 32312000:case 32313000:case 32314000:case 32315000:case 32316000:case 32317000:case 32318000:case 32319000:case 32411100:case 32411200:case 32411300:case 32411400:case 32411500:case 32411600:case 32411700:case 32411800:case 32411900:case 324111000:case 324111100:case 324111200:case 324111300:case 324111400:case 324111500:case 324111600:case 324111700:case 32412100:case 32412200:case 32412300:case 32413100:case 32413200:case 32413300:case 32414100:case 32414200:case 32414300:case 32414400:case 32414500:case 32415100:case 32415200:case 32415300:case 32416100:case 32416200:case 32416300:case 32416400:case 32416500:case 32416600:case 32416700:case 32416800:case 32416900:armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2(tg.get_LineType(),tg.Pixels,shapes,null,rev);break;case 31810000:case 31810001:case 31820000:case 31820001:case 31830000:case 31830001:case 31840000:case 31840001:case 31850000:case 31850001:case 31860000:case 31860001:case 32154000:case 32154001:case 32155000:case 32155001:case 32161000:case 32161001:case 32212000:case 32212001:case 32213000:case 32213001:case 32221000:case 32221001:case 32231700:case 32231701:case 32233600:case 32233601:case 32233700:case 32233701:case 32234100:case 32234101:case 32234200:case 32234201:case 32234300:case 32234301:case 32272000:case 32273000:case 32272001:case 32273001:case 32610000:case 32610001:case 31430000:case 31440000:case 31430001:case 31440001:lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);break;case 22612001:case 22623001:if(tg.get_FillColor()!==null&&tg.get_FillColor().getAlpha()>1){lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.setShape(lineObject2);shapes.add(shape);splinePoints.clear();}
- lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);armyc2.c2sd.JavaTacticalRenderer.clsMETOC.SetShapeProperties(tg,shapes,null);return;case 22612000:case 22623000:lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());if(tg.get_FillColor()!==null&&tg.get_FillColor().getAlpha()>1){if(splinePoints!==null&&splinePoints.size()>0){shape.moveTo(splinePoints.get(0));for(j=1;j<splinePoints.size();j++)
- shape.lineTo(splinePoints.get(j));shape.lineTo(tg.Pixels.get(tg.Pixels.size()-1));shapes.add(0,shape);}else{shape.moveTo(tg.Pixels.get(0));for(j=1;j<tg.Pixels.size();j++)
- shape.lineTo(tg.Pixels.get(j));shape.lineTo(tg.Pixels.get(tg.Pixels.size()-1));shapes.add(0,shape);}}
- break;case 32162000:case 32162001:case 32156000:case 32156001:lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);break;case 32163000:originalPixels=tg.Pixels;partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);for(l=0;l<partitions.size();l++){tg.Pixels=originalPixels;pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++)
- pixels.add(tg.Pixels.get(k));if(pixels===null||pixels.isEmpty())
- continue;twoSplines=new java.util.ArrayList();twoSplines=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ParallelLines2(pixels,rev);upperSpline=new java.util.ArrayList();lowerSpline=new java.util.ArrayList();for(j=0;j<Math.floor(twoSplines.size()/2);j++){upperSpline.add(twoSplines.get(j));}
- for(j=Math.floor(twoSplines.size()/2);j<twoSplines.size();j++){lowerSpline.add(twoSplines.get(j));}
- tg.Pixels=lowerSpline;lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);tg.Pixels=upperSpline;lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);}
- break;case 32163001:originalPixels=tg.Pixels;partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);for(l=0;l<partitions.size();l++){tg.Pixels=originalPixels;pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++)
- pixels.add(tg.Pixels.get(k));if(pixels===null||pixels.isEmpty())
- continue;twoSplines=new java.util.ArrayList();twoSplines=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ParallelLines2(pixels,rev);upperSpline=new java.util.ArrayList();lowerSpline=new java.util.ArrayList();for(j=0;j<Math.floor(twoSplines.size()/2);j++){upperSpline.add(twoSplines.get(j));}
- for(j=Math.floor(twoSplines.size()/2);j<twoSplines.size();j++){lowerSpline.add(twoSplines.get(j));}
- tg.Pixels=lowerSpline;lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);ptLast=tg.Pixels.get(tg.Pixels.size()-1);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);tg.Pixels=upperSpline;splinePoints=new java.util.ArrayList();lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);ptLast=tg.Pixels.get(tg.Pixels.size()-1);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);}
- break;case 32164000:originalPixels=tg.Pixels;partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);for(l=0;l<partitions.size();l++){tg.Pixels=originalPixels;pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++)
- pixels.add(tg.Pixels.get(k));if(pixels===null||pixels.isEmpty())
- continue;twoSplines=new java.util.ArrayList();twoSplines=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ParallelLines2(pixels,rev);upperSpline=new java.util.ArrayList();lowerSpline=new java.util.ArrayList();for(j=0;j<Math.floor(twoSplines.size()/2);j++){upperSpline.add(twoSplines.get(j));}
- for(j=Math.floor(twoSplines.size()/2);j<twoSplines.size();j++){lowerSpline.add(twoSplines.get(j));}
- tg.Pixels=lowerSpline;lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);tg.Pixels=upperSpline;lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints2);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);var splinePointsArrays=new java.util.ArrayList();var splinePoints2Arrays=new java.util.ArrayList();var ptsArray=new java.util.ArrayList();for(j=0;j<splinePoints.size();j++){if(splinePoints.get(j).style!==47){ptsArray.add(splinePoints.get(j));}else{splinePointsArrays.add(ptsArray);ptsArray=new java.util.ArrayList();}}
- for(j=0;j<splinePoints2.size();j++){if(splinePoints2.get(j).style!==47){ptsArray.add(splinePoints2.get(j));}else{splinePoints2Arrays.add(ptsArray);ptsArray=new java.util.ArrayList();}}
- var array=null;var array2=null;var pt;var pt2;lineObject=new armyc2.c2sd.graphics2d.GeneralPath();for(j=0;j<splinePointsArrays.size();j++){array=splinePointsArrays.get(j);if(splinePoints2Arrays.size()>j)
- array2=splinePoints2Arrays.get(j);else
- break;if(splinePointsArrays.size()>=splinePoints2Arrays.size()){for(k=0;k<array.size();k++){if(array.size()>k)
- pt=array.get(k);else
- break;pt2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ExtrapolatePointFromCurve(array2,pt);if(pt2!==null){lineObject.moveTo(pt.x,pt.y);lineObject.lineTo(pt2.x,pt2.y);}}}else{for(k=0;k<array2.size();k++){pt=array2.get(k);pt2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ExtrapolatePointFromCurve(array,pt);if(pt2!==null){lineObject.moveTo(pt.x,pt.y);lineObject.lineTo(pt2.x,pt2.y);}}}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject);shapes.add(shape);}
- break;case 32164001:originalPixels=tg.Pixels;partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);for(l=0;l<partitions.size();l++){tg.Pixels=originalPixels;pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++)
- pixels.add(tg.Pixels.get(k));if(pixels===null||pixels.isEmpty())
- continue;twoSplines=new java.util.ArrayList();twoSplines=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ParallelLines2(pixels,rev);upperSpline=new java.util.ArrayList();lowerSpline=new java.util.ArrayList();for(j=0;j<Math.floor(twoSplines.size()/2);j++){upperSpline.add(twoSplines.get(j));}
- for(j=Math.floor(twoSplines.size()/2);j<twoSplines.size();j++){lowerSpline.add(twoSplines.get(j));}
- tg.Pixels=lowerSpline;var splinePoints3=new java.util.ArrayList();lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints3);splinePoints.addAll(splinePoints3);ptLast=tg.Pixels.get(tg.Pixels.size()-1);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);tg.Pixels=upperSpline;var splinePoints4=new java.util.ArrayList();lineObject2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints4);splinePoints2.addAll(splinePoints4);ptLast=tg.Pixels.get(tg.Pixels.size()-1);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);splinePointsArrays=new java.util.ArrayList();splinePoints2Arrays=new java.util.ArrayList();ptsArray=new java.util.ArrayList();for(j=0;j<splinePoints.size();j++){if(splinePoints.get(j).style!==47){ptsArray.add(splinePoints.get(j));}else{splinePointsArrays.add(ptsArray);ptsArray=new java.util.ArrayList();}}
- for(j=0;j<splinePoints2.size();j++){if(splinePoints2.get(j).style!==47){ptsArray.add(splinePoints2.get(j));}else{splinePoints2Arrays.add(ptsArray);ptsArray=new java.util.ArrayList();}}
- array=null;array2=null;pt=null;pt2=null;lineObject=new armyc2.c2sd.graphics2d.GeneralPath();for(j=0;j<splinePointsArrays.size();j++){array=splinePointsArrays.get(j);if(splinePoints2Arrays.size()>j)
- array2=splinePoints2Arrays.get(j);else
- break;if(splinePointsArrays.size()>=splinePoints2Arrays.size()){for(k=0;k<array.size();k++){if(array.size()>k)
- pt=array.get(k);else
- break;pt2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ExtrapolatePointFromCurve(array2,pt);if(pt2!==null){lineObject.moveTo(pt.x,pt.y);lineObject.lineTo(pt2.x,pt2.y);}}}else{for(k=0;k<array2.size();k++){pt=array2.get(k);pt2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.ExtrapolatePointFromCurve(array,pt);if(pt2!==null){lineObject.moveTo(pt.x,pt.y);lineObject.lineTo(pt2.x,pt2.y);}}}}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject);shapes.add(shape);}
- break;case 32246000:lineObject=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawSplines(tg,splinePoints);lineObject2=new armyc2.c2sd.graphics2d.GeneralPath();if(splinePoints.size()>0)
- lineObject2.moveTo(splinePoints.get(0).x,splinePoints.get(0).y);else{lineObject2.moveTo(tg.Pixels.get(0).x,tg.Pixels.get(0).y);for(j=0;j<tg.Pixels.size();j++)
- lineObject2.lineTo(tg.Pixels.get(j).x,tg.Pixels.get(j).y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shape.set_Style(1);shapes.add(shape);return;}
- var n=Math.floor(splinePoints.size()/2);for(j=1;j<=n;j++){if(splinePoints.size()>=j-1)
- lineObject2.lineTo(splinePoints.get(j).x,splinePoints.get(j).y);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shapes.add(shape);lineObject2=new armyc2.c2sd.graphics2d.GeneralPath();lineObject2.moveTo(splinePoints.get(n).x,splinePoints.get(n).y);for(j=n+1;j<splinePoints.size();j++){if(splinePoints.size()>=j-1)
- lineObject2.lineTo(splinePoints.get(j).x,splinePoints.get(j).y);}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shape.set_Style(1);shapes.add(shape);break;default:break;}
- if(tg.get_LineType()!==32163000&&tg.get_LineType()!==32163001&&tg.get_LineType()!==32164000&&tg.get_LineType()!==32164001&&tg.get_LineType()!==32156000){if(splinePoints!==null&&splinePoints.size()>0){lineObject2=new armyc2.c2sd.graphics2d.GeneralPath();lineObject2.moveTo(splinePoints.get(splinePoints.size()-1).x,splinePoints.get(splinePoints.size()-1).y);lineObject2.lineTo(ptLast.x,ptLast.y);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setShape(lineObject2);shape.set_Style(0);shapes.add(shape);}}
- armyc2.c2sd.JavaTacticalRenderer.clsMETOC.SetShapeProperties(tg,shapes,null);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"GetMeTOCShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetMeTOCShape",exc));}else{throw exc;}}},GetImageFile:function(tg){var fileName="";try{switch(tg.get_LineType()){case 32232400:fileName="visualAssets/Weirs.png";break;case 32540000:fileName="visualAssets/SweptArea.png";break;case 32670000:fileName="visualAssets/OilRigField.png";break;case 32254200:fileName="visualAssets/FoulGround.png";break;case 32255200:fileName="visualAssets/Kelp.png";break;case 32324000:fileName="visualAssets/BeachSlopeSteep.png";break;case 32223000:fileName="visualAssets/BeigeStipple.png";break;case 32323000:fileName="visualAssets/BeachSlopeModerate.png";break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"GetImageFile",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetImageFile",exc));}else{throw exc;}}
- return fileName;},SetShapeProperties:function(tg,shapes,bi){try{if(shapes===null){return;}
- switch(tg.get_LineType()){case 32214000:return;default:break;}
- var j=0;var shape=null;var stroke=null;var inFile=null;var bi2=null;var dash=null;var lineThickness=tg.get_LineThickness();var rect=null;var grid=null;var tp=tg.get_TexturePaint();var fileName=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.GetImageFile(tg);switch(tg.get_LineType()){case 32232400:case 32540000:case 32670000:case 32254200:case 32255200:case 32323000:case 32324000:case 32223000:shape=shapes.get(0);shape.setLineColor(tg.get_LineColor());if(inFile!==null){bi2=armyc2.c2sd.graphics2d.ImageIO.read(inFile);rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,bi2.getWidth(),bi2.getHeight());tp=new armyc2.c2sd.graphics2d.TexturePaint(bi2,rect);shape.setTexturePaint(tp);inFile.close();}
- break;case 31134000:case 31134100:case 31134200:case 31134300:for(j=0;j<shapes.size();j++){shape=shapes.get(j);if(shape===null||shape.getShape()===null){continue;}
- shape.set_Style(tg.get_LineStyle());stroke=new armyc2.c2sd.graphics2d.BasicStroke(lineThickness,1,1,1,dash,0);shape.setStroke(stroke);}
- return;default:break;}
- var shapeType=-1;var lineType=tg.get_LineType();var isChange1Area=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,null);var isClosedPolygon=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType);for(j=0;j<shapes.size();j++){shape=shapes.get(j);if(shape===null||shape.getShape()===null){continue;}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){shape.setFillColor(tg.get_FillColor());}
- shapeType=shape.getShapeType();switch(tg.get_LineType()){case 31134000:case 31134100:case 31134200:case 31134300:case 31148000:break;case 32246000:case 32550000:shape.setLineColor(tg.get_LineColor());break;case 22623001:case 22612001:if(shape.getShapeType()===armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_FILL)
- shape.setLineColor(null);else{shape.setLineColor(tg.get_LineColor());shape.set_Style(tg.get_LineStyle());}
- break;break;default:shape.setLineColor(tg.get_LineColor());shape.set_Style(tg.get_LineStyle());break;}
- if(isClosedPolygon||shapeType===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){switch(tg.get_LineType()){case 32223000:case 32225200:case 32224000:case 32222000:case 32233100:case 32233500:case 32244200:case 32253000:case 322512000:case 32311000:case 32312000:case 32313000:case 32314000:case 32315000:case 32316000:case 32317000:case 32318000:case 32319000:case 32411100:case 32411200:case 32411600:case 32411500:case 32411400:case 32411300:case 32411700:case 32411800:case 32411900:case 324111000:case 324111100:case 324111200:case 324111300:case 324111400:case 324111500:case 324111600:case 324111700:case 32412200:case 32412300:case 32412100:case 32413300:case 32413200:case 32413100:case 32414100:case 32414200:case 32414500:case 32414300:case 32414400:case 32415100:case 32415200:case 32415300:case 32416100:case 32416200:case 32416300:case 32416400:case 32416500:case 32416600:case 32416700:case 32416800:case 32416900:case 32620000:case 317100000:shape.setFillColor(tg.get_FillColor());break;default:break;}
- switch(shape.get_FillStyle()){case 3:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(shape.getFillColor());grid.drawLine(0,8,8,0);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 2:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(tg.get_FillColor());grid.drawLine(0,0,8,8);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 6:rect=new armyc2.c2sd.graphics2d.Rectangle2D(3,3,8,8);grid=bi.createGraphics();grid.setColor(tg.get_FillColor());grid.drawLine(3,3,5,3);grid.drawLine(5,3,5,5);grid.drawLine(5,5,3,5);grid.drawLine(3,5,5,3);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 4:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(tg.get_FillColor());grid.drawLine(4,0,4,8);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 5:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(tg.get_FillColor());grid.drawLine(0,4,8,4);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 1:break;default:break;}}
- switch(shape.get_Style()){case 0:dash=null;break;case 1:dash=Clazz.newArray(2,0);dash[0]=5;dash[1]=5;break;case 2:dash=Clazz.newArray(2,0);dash[0]=3;dash[1]=3;break;case 3:dash=Clazz.newArray(4,0);dash[0]=8;dash[1]=4;dash[2]=4;dash[3]=4;break;case 4:dash=Clazz.newArray(6,0);dash[0]=8;dash[1]=4;dash[2]=4;dash[3]=4;dash[4]=4;dash[5]=4;break;default:break;}
- stroke=new armyc2.c2sd.graphics2d.BasicStroke(lineThickness,1,1,1,dash,0);shape.setStroke(stroke);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"SetShapeProperties",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetShapeProperties",exc));}else{throw exc;}}},DrawArrow:function(pt1,pt2,size,lineObject){try{var ptBase=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pts=new java.util.ArrayList();ptBase=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,size);ptTemp=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,ptBase,ptBase,2,size);pts.add(ptTemp);pts.add(pt2);ptTemp=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt1,ptBase,ptBase,3,size);pts.add(ptTemp);lineObject.moveTo(pts.get(0).x,pts.get(0).y);lineObject.lineTo(pts.get(1).x,pts.get(1).y);lineObject.lineTo(pts.get(2).x,pts.get(2).y);pts.clear();pts=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"DrawArrow",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawArrow",exc));}else{throw exc;}}},DrawSplines:function(tg,splinePoints2){var lineObject=new armyc2.c2sd.graphics2d.GeneralPath();try{var i=0;var j=0;var splinePoints;var array=tg.get_Pixels();var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt4=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt5=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt6=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt;var pt_before;var pt_after;var Di;var p2;var p3;var pt_after2;var tension=0.33;var control_scale=(tension/0.5*0.175);var tmpArray=null;for(i=0;i<array.size()-1;i++){pt=array.get(i);if(i===0){lineObject.moveTo(pt.x,pt.y);pt_before=pt;}else{pt_before=array.get(i-1);}
- if(i===array.size()-1){pt2=array.get(i);}else{pt2=array.get(i+1);}
- if(i<array.size()-2){pt_after=array.get(i+1);}else{pt_after=array.get(array.size()-1);}
- if(i<array.size()-2){pt_after2=array.get(i+2);}else{pt_after2=array.get(array.size()-1);}
- Di=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();p2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();Di.x=pt_after.x-pt_before.x;Di.y=pt_after.y-pt_before.y;p2.x=pt.x+control_scale*Di.x;p2.y=pt.y+control_scale*Di.y;p3=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var DiPlus1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();DiPlus1.x=pt_after2.x-pt.x;DiPlus1.y=pt_after2.y-pt.y;p3.x=pt_after.x-control_scale*DiPlus1.x;p3.y=pt_after.y-control_scale*DiPlus1.y;tmpArray=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.drawCubicBezier2(tg,lineObject,pt,p2,p3,pt2);if(tg.get_LineType()===32164000||tg.get_LineType()===32164001){if(tmpArray.size()>0)
- tmpArray.get(tmpArray.size()-1).style=47;}
- splinePoints2.addAll(tmpArray);splinePoints=tmpArray;switch(tg.get_LineType()){case 32272000:if(i===array.size()-2){if(splinePoints.size()>=2)
- armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(splinePoints.size()-2),tg.Pixels.get(tg.Pixels.size()-1),10,lineObject);}
- break;case 32273000:if(i===array.size()-2){if(splinePoints.size()>=2)
- armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(splinePoints.size()-2),tg.Pixels.get(tg.Pixels.size()-1),10,lineObject);}else if(i===0&&splinePoints.size()>1){pt0=splinePoints.get(0);pt1=splinePoints.get(1);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,20);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,30);pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt2,pt2,3,10);pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt4,pt3,pt3,3,10);lineObject.moveTo(pt3.x,pt3.y);lineObject.lineTo(pt5.x,pt5.y);lineObject.moveTo(pt4.x,pt4.y);lineObject.lineTo(pt6.x,pt6.y);}
- break;case 31440000:case 31430000:if(i===0&&splinePoints.size()>1){armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(1),splinePoints.get(0),10,lineObject);}
- break;case 32273001:if(i===array.size()-2){lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));if(splinePoints.size()>=2)
- armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(splinePoints.size()-2),tg.Pixels.get(tg.Pixels.size()-1),10,lineObject);}else if(i===0&&splinePoints.size()>1){pt0=splinePoints.get(0);pt1=splinePoints.get(1);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,10);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,20);pt4=armyc2.c2sd.JavaLineArray.lineutility.ExtendLineDouble(pt0,pt1,30);pt5=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt3,pt2,pt2,3,10);pt6=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt4,pt3,pt3,3,10);lineObject.moveTo(pt3.x,pt3.y);lineObject.lineTo(pt5.x,pt5.y);lineObject.moveTo(pt4.x,pt4.y);lineObject.lineTo(pt6.x,pt6.y);}
- break;case 32272001:if(i===array.size()-2){lineObject=new armyc2.c2sd.graphics2d.GeneralPath();lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));if(splinePoints.size()>=2)
- armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(splinePoints.size()-2),tg.Pixels.get(tg.Pixels.size()-1),10,lineObject);}
- break;case 31430001:case 31440001:if(i===0&&splinePoints.size()>1){armyc2.c2sd.JavaTacticalRenderer.clsMETOC.DrawArrow(splinePoints.get(1),splinePoints.get(0),10,lineObject);}
- if(i===array.size()-2){lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));}
- break;case 32164001:case 32163001:case 32610001:case 32234301:case 32234201:case 32234101:case 32233601:case 32233701:case 32231701:case 32221001:case 32213001:case 32212001:case 32161001:case 32155001:case 32154001:case 31860001:case 31850001:case 31840001:case 31830001:case 31820001:case 31810001:case 22612001:case 22623001:if(splinePoints2!==null&&!splinePoints2.isEmpty()){lineObject=new armyc2.c2sd.graphics2d.GeneralPath();if(i===array.size()-2){lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));}}
- break;case 32156000:for(j=0;j<splinePoints.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt0,45,5);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt1,-45,5);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt2.x,pt2.y);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt3.x,pt3.y);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt0,135,5);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt1,-135,5);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt2.x,pt2.y);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt3.x,pt3.y);}
- break;case 32156001:for(j=0;j<splinePoints.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt0,45,5);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt1,-45,5);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt2.x,pt2.y);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt3.x,pt3.y);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt0,135,5);pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(splinePoints.get(j).x,splinePoints.get(j).y);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAngledLine(splinePoints.get(j),splinePoints.get(j+1),pt1,-135,5);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt2.x,pt2.y);lineObject.moveTo(splinePoints.get(j).x,splinePoints.get(j).y);lineObject.lineTo(pt3.x,pt3.y);}
- if(i===array.size()-2){lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));}
- break;case 32162000:for(j=0;j<splinePoints.size()-1;j++){pt0=splinePoints.get(j+1);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(splinePoints.get(j),splinePoints.get(j+1),pt0,2,5);lineObject.moveTo(pt1.x,pt1.y);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(splinePoints.get(j),splinePoints.get(j+1),pt0,3,5);lineObject.lineTo(pt1.x,pt1.y);}
- break;case 32162001:for(j=0;j<splinePoints.size()-1;j++){pt0=splinePoints.get(j+1);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(splinePoints.get(j),splinePoints.get(j+1),pt0,2,5);lineObject.moveTo(pt1.x,pt1.y);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(splinePoints.get(j),splinePoints.get(j+1),pt0,3,5);lineObject.lineTo(pt1.x,pt1.y);}
- if(i===array.size()-2){lineObject.moveTo(Math.floor(splinePoints2.get(0).x),Math.floor(splinePoints2.get(0).y));for(j=1;j<splinePoints2.size();j++)
- lineObject.lineTo(Math.floor(splinePoints2.get(j).x),Math.floor(splinePoints2.get(j).y));}
- break;default:break;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"DrawSplines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside DrawSplines",exc));}else{throw exc;}}
- return lineObject;},getPointOnSegment:function(P0,P1,ratio)
- {var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try
- {pt.x=P0.x+(P1.x-P0.x)*ratio;pt.y=P0.y+(P1.y-P0.y)*ratio;}
- catch(exc)
- {if(Clazz.instanceOf(exc))
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"getPointOnSegment",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getPointOnSegment",exc));}
- else
- {throw exc;}}
- return pt;},drawCubicBezier2:function(tg,lineObject,P0,P1,P2,P3){var array=new java.util.ArrayList();try{var PA=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(P0,P1,0.75);var PB=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(P3,P2,0.75);var dx=(P3.x-P0.x)/16;var dy=(P3.y-P0.y)/16;var Pc_1=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(P0,P1,0.375);var Pc_2=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(PA,PB,0.375);Pc_2.x-=dx;Pc_2.y-=dy;var Pc_3=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(PB,PA,0.375);Pc_3.x+=dx;Pc_3.y+=dy;var Pc_4=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.getPointOnSegment(P3,P2,0.375);var Pa_1=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(Pc_1,Pc_2,0);var Pa_2=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(PA,PB,0);var Pa_3=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(Pc_3,Pc_4,0);switch(tg.get_LineType()){case 31810000:case 31820000:case 31850000:case 32154000:case 32161000:case 32212000:case 32213000:case 32221000:case 32231700:case 32233600:case 32234100:case 32234300:case 32610000:case 32163000:case 31840000:case 31830000:case 31860000:case 32155000:case 32233700:case 32234200:lineObject.moveTo(P0.x,P0.y);lineObject.curveTo(P1.x,P1.y,P2.x,P2.y,P3.x,P3.y);return array;case 22612000:case 22623000:lineObject.moveTo(P0.x,P0.y);lineObject.curveTo(P1.x,P1.y,P2.x,P2.y,P3.x,P3.y);if(tg.get_FillColor()===null||tg.get_FillColor().getAlpha()<2)
- return array;break;case 32163001:case 32610001:case 32234301:case 32234201:case 32234101:case 32233601:case 32233701:case 32231701:case 32221001:case 32213001:case 32212001:case 32161001:case 32155001:case 32154001:case 31860001:case 31840001:case 31830001:case 31810001:case 31820001:case 31850001:case 32164000:case 32164001:case 32156000:case 32156001:case 32162000:case 32162001:case 32272000:case 32273000:case 32272001:case 32273001:case 31430000:case 31440000:case 31430001:case 31440001:case 22612001:case 22623001:lineObject.moveTo(P0.x,P0.y);lineObject.curveTo(P1.x,P1.y,P2.x,P2.y,P3.x,P3.y);break;default:break;}
- var j=0;var distance;var n=0;var x=0;var y=0;var increment=0;var pt0;var pt1;var pt2;var t;var pt;array.clear();switch(tg.get_LineType()){case 22612000:case 22623000:case 22612001:case 22623001:increment=3.0;break;case 32156000:increment=10.0;break;case 32164000:case 32164001:case 32162000:case 32162001:increment=7.0;break;default:increment=10.0;break;}
- distance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(P0,Pa_1);if(distance<increment)
- distance=increment;n=Math.floor((distance/increment));pt0=P0;pt1=Pc_1;pt2=Pa_1;for(j=0;j<n;j++){t=j*(increment/distance);x=(1-t)*(1-t)*pt0.x+2*(1-t)*t*pt1.x+t*t*pt2.x;y=(1-t)*(1-t)*pt0.y+2*(1-t)*t*pt1.y+t*t*pt2.y;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);array.add(pt);}
- distance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(Pa_1,Pa_2);n=Math.floor((distance/increment));pt0=Pa_1;pt1=Pc_2;pt2=Pa_2;for(j=0;j<n;j++){t=j*(increment/distance);x=(1-t)*(1-t)*pt0.x+2*(1-t)*t*pt1.x+t*t*pt2.x;y=(1-t)*(1-t)*pt0.y+2*(1-t)*t*pt1.y+t*t*pt2.y;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);array.add(pt);}
- distance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(Pa_2,Pa_3);n=Math.floor((distance/increment));pt0=Pa_2;pt1=Pc_3;pt2=Pa_3;for(j=0;j<n;j++){t=j*(increment/distance);x=(1-t)*(1-t)*pt0.x+2*(1-t)*t*pt1.x+t*t*pt2.x;y=(1-t)*(1-t)*pt0.y+2*(1-t)*t*pt1.y+t*t*pt2.y;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);array.add(pt);}
- distance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(Pa_3,P3);n=Math.floor((distance/increment));pt0=Pa_3;pt1=Pc_4;pt2=P3;for(j=0;j<n;j++){t=j*(increment/distance);x=(1-t)*(1-t)*pt0.x+2*(1-t)*t*pt1.x+t*t*pt2.x;y=(1-t)*(1-t)*pt0.y+2*(1-t)*t*pt1.y+t*t*pt2.y;pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y);array.add(pt);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"drawCubicBezier2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside drawCubicBezier2",exc));}else{throw exc;}}
- return array;},ParallelLines2:function(Pixels,rev){var channelPoints2=new java.util.ArrayList();try{var pLinePoints=Clazz.newArray(Pixels.size()*2,0);var channelPoints=Clazz.newArray(6*Pixels.size(),0);var j=0;for(j=0;j<Pixels.size();j++){pLinePoints[2*j]=Pixels.get(j).x;pLinePoints[2*j+1]=Pixels.get(j).y;}
- var numPoints=Pixels.size();var channelWidth=20;var usePtr=0;var shapes=null;try{armyc2.c2sd.JavaLineArray.CELineArray.CGetChannel2Double(pLinePoints,pLinePoints,channelPoints,numPoints,numPoints,231113001,channelWidth,usePtr,shapes,rev);}catch(e){if(Clazz.instanceOf(e)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"ParallelLines2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ParallelLines2",e));}else{throw e;}}
- var pt2=null;var style=0;for(j=0;j<Math.floor(channelPoints.length/3);j++){pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(channelPoints[3*j],channelPoints[3*j+1],style);channelPoints2.add(pt2);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsMETOC._className,"ParallelLines2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ParallelLines2",exc));}else{throw exc;}}
- return channelPoints2;},_className:"clsMETOC"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.clsUtility={POINT2ToPoint2D:function(pt2){if(pt2===null){return null;}
- var x=pt2.x;var y=pt2.y;var pt=new armyc2.c2sd.graphics2d.Point2D(x,y);return pt;},linesOutsideClipBounds:function(tg,clipBounds){try{var isAutoshape=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isAutoshape(tg);if(isAutoshape)
- return false;var xmin=clipBounds.getMinX();var xmax=clipBounds.getMaxX();var ymin=clipBounds.getMinY();var ymax=clipBounds.getMaxY();var j=0;var pt0=null;var pt1=null;var boundsEdge=null;var ptsLine=null;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(clipBounds.containsPt2(pt0.x,pt0.y))
- return false;if(clipBounds.containsPt2(pt1.x,pt1.y))
- return false;ptsLine=new armyc2.c2sd.graphics2d.Line2D(pt0.x,pt0.y,pt1.x,pt1.y);boundsEdge=new armyc2.c2sd.graphics2d.Line2D(xmin,ymin,xmax,ymin);if(ptsLine.intersectsLine(boundsEdge))
- return false;boundsEdge=new armyc2.c2sd.graphics2d.Line2D(xmax,ymin,xmax,ymax);if(ptsLine.intersectsLine(boundsEdge))
- return false;boundsEdge=new armyc2.c2sd.graphics2d.Line2D(xmax,ymax,xmin,ymax);if(ptsLine.intersectsLine(boundsEdge))
- return false;boundsEdge=new armyc2.c2sd.graphics2d.Line2D(xmin,ymax,xmin,ymin);if(ptsLine.intersectsLine(boundsEdge))
- return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"linesOutsideClipBounds",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside linesOutsideClipBounds",exc));}else{throw exc;}}
- return true;},GetMinPoints:function(lineType){var result=-1;switch(lineType){case 24311000:result=1;break;case 15000002:case 24312000:case 24321300:case 24323300:case 24324300:case 24325300:case 24322300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24353000:case 24363000:result=1;break;case 243111000:case 243112000:result=1;break;case 24326101:case 24321200:case 24323200:case 24325200:case 24324200:case 24322200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24352000:case 24362000:result=2;break;case 22534000:case 211800000:case 23163000:case 23221000:case 23222000:case 23410000:case 212210001:case 212230001:case 212220001:case 212300001:result=4;break;case 21300000:case 21100000:case 21200000:case 21400000:case 21500000:case 21600000:case 21800000:case 211000000:case 211700000:case 212000000:case 212210000:case 212230000:case 212220000:case 212300000:case 212400000:case 212410000:case 22139000:case 22310000:case 2237000:case 22422000:case 22524000:case 22533000:case 22611000:case 22612000:case 22613000:case 22623000:case 23171000:case 23174000:case 23173000:case 23191000:case 23192000:case 23193000:case 23194000:case 231100000:case 23211000:case 23212000:case 23213000:case 23224000:case 23225000:case 31710000:case 31720000:case 31730000:case 31740000:case 31750000:case 31751000:case 31760000:case 31770000:case 31780000:case 31790000:case 317100000:case 32214000:case 32222000:case 32223000:case 32224000:case 32232400:case 32540000:case 32670000:case 32254200:case 32255200:case 32323000:case 32324000:case 32231500:case 32550000:case 32225200:case 32233100:case 32233500:case 32244200:case 32253000:case 322512000:case 32321000:case 32322000:case 32520000:case 32560000:case 32620000:case 32311000:case 32312000:case 32313000:case 32314000:case 32315000:case 32316000:case 32317000:case 32318000:case 32319000:case 32411100:case 32411200:case 32411300:case 32411400:case 32411500:case 32411600:case 32411700:case 32411800:case 32411900:case 324111000:case 324111100:case 324111200:case 324111300:case 324111400:case 324111500:case 324111600:case 324111700:case 32412100:case 32412200:case 32412300:case 32413100:case 32413200:case 32413300:case 32414100:case 32414200:case 32414300:case 32414400:case 32414500:case 32415100:case 32415200:case 32415300:case 32416100:case 32416200:case 32416300:case 32416400:case 32416500:case 32416600:case 32416700:case 32416800:case 32416900:result=3;break;case 22222000:case 22224000:case 22225000:case 22421000:case 22522100:case 23120000:case 23157000:case 23172000:case 23223000:case 23226000:case 23227000:case 23340000:case 24250000:case 24211000:case 24260000:case 25211000:case 25212000:result=2;break;default:result=2;break;}
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType)){result=3;}
- return result;},isBasicShape:function(linetype){switch(linetype){case 11000000:case 10000000:case 12000000:case 13000000:case 14000000:case 15000001:case 15000000:case 15000002:case 15000003:case 15000004:return true;default:return false;}},isClosedPolygon:function(linetype){var result=false;switch(linetype){case 15000001:case 15000004:case 24330000:case 23162000:case 22135000:case 23164000:case 23180000:case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:case 22235000:case 2237000:case 22431100:case 22431000:case 22133000:case 22136000:case 22137000:case 22138000:case 22131000:case 11000000:case 22432000:case 22531000:case 22532000:case 22535000:case 22621000:case 22622000:case 22625000:case 22626000:case 23114000:case 23115000:case 23113000:case 23111000:case 23350000:case 23490000:case 24321100:case 24322100:case 22132000:case 25351000:case 24324100:case 24325100:case 25330000:case 221311000:case 221310000:case 22340000:case 22350000:case 24315000:case 24323100:case 24314000:case 243100000:case 22624000:case 25310000:case 25320000:case 25340000:case 25352000:case 25353000:case 22134000:case 22536000:case 23450000:case 23440000:case 23460000:case 24313000:case 24331100:case 24338100:case 24339100:case 24332100:case 24334100:case 24333100:case 24337100:case 24335100:case 24336100:case 24351000:case 24361000:case 31710000:case 31720000:case 31730000:case 31740000:case 31750000:case 31751000:case 31760000:case 31770000:case 31780000:case 31790000:case 317100000:case 32214000:case 32222000:case 32223000:case 32224000:case 32232400:case 32540000:case 32670000:case 32254200:case 32255200:case 32323000:case 32324000:case 32231500:case 32550000:case 32225200:case 32233100:case 32233500:case 32244200:case 32253000:case 322512000:case 32321000:case 32322000:case 32520000:case 32560000:case 32620000:case 32311000:case 32312000:case 32313000:case 32314000:case 32315000:case 32316000:case 32317000:case 32318000:case 32319000:case 32411100:case 32411200:case 32411300:case 32411400:case 32411500:case 32411600:case 32411700:case 32411800:case 32411900:case 324111000:case 324111100:case 324111200:case 324111300:case 324111400:case 324111500:case 324111600:case 324111700:case 32412100:case 32412200:case 32412300:case 32413100:case 32413200:case 32413300:case 32414100:case 32414200:case 32414300:case 32414400:case 32414500:case 32415100:case 32415200:case 32415300:case 32416100:case 32416200:case 32416300:case 32416400:case 32416500:case 32416600:case 32416700:case 32416800:case 32416900:case 24226000:result=true;default:break;}
- return result;},ClosePolygon:function(Pixels){try{var pt0=Pixels.get(0);var pt1=Pixels.get(Pixels.size()-1);if(pt0.x!==pt1.x||pt0.y!==pt1.y){Pixels.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0.x,pt0.y));}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ClosePolygon",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ClosePolygon",exc));}else{throw exc;}}},shiftModifiersLeft:function(p1,p2,shift){try{var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(p1);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(p2);var dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt1,pt2);if(pt1.x<pt2.x||(pt1.x===pt2.x&&pt1.y<pt2.y)){pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,dist+shift);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt2,dist-shift);}else{pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt2,pt1,dist-shift);pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt1,pt2,dist+shift);}
- p1.x=pt1.x;p1.y=pt1.y;p2.x=pt2.x;p2.y=pt2.y;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"shiftModifiersLeft",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside shiftModifiersLeft",exc));}else{throw exc;}}
- return;},ResolveModifierShape:function(tg,shape){try{var shapeStyle=shape.get_Style();var lineStyle=tg.get_LineStyle();var lineType=tg.get_LineType();var hasFill=armyc2.c2sd.JavaTacticalRenderer.clsUtility.LinesWithFill(lineType);var bolMETOC=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(tg.get_SymbolId());if(bolMETOC>0)
- return;switch(tg.get_LineType()){case 22421000:shape.setFillColor(null);shape.set_Style(tg.get_LineStyle());shape.setLineColor(tg.get_LineColor());break;case 24324100:case 24324300:case 24324200:case 24351000:case 24361000:case 24352000:case 24362000:case 24353000:case 24363000:case 23450000:case 23460000:case 23440000:case 22235000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(tg.get_LineStyle());shape.setLineColor(tg.get_LineColor());shape.set_Fillstyle(3);shape.setFillColor(tg.get_FillColor());}
- break;case 23115000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(tg.get_LineStyle());shape.setLineColor(tg.get_LineColor());shape.set_Fillstyle(0);shape.setFillColor(tg.get_FillColor());}
- break;case 221310000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(tg.get_LineStyle());shape.setLineColor(tg.get_LineColor());shape.set_Fillstyle(2);shape.setFillColor(tg.get_FillColor());}
- break;case 23200001:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){shape.set_Fillstyle(1);shape.setFillColor(tg.get_LineColor());}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(1);shape.setLineColor(tg.get_LineColor());}
- break;case 22522100:case 23131200:case 23132000:case 22139000:case 211210000:case 23223000:case 23172000:case 23173000:case 23174000:case 23211000:case 23212000:case 23213000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){shape.set_Fillstyle(1);shape.setFillColor(tg.get_LineColor());}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(tg.get_LineStyle());shape.setLineColor(tg.get_LineColor());}
- break;case 22310000:case 23157000:case 21700000:case 21710000:case 22528000:case 23191000:case 24220000:case 23224000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(1);shape.setLineColor(tg.get_LineColor());}
- break;case 22431100:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.set_Style(1);shape.setLineColor(tg.get_LineColor());shape.setFillColor(tg.get_FillColor());shape.set_Fillstyle(tg.get_FillStyle());}
- break;case 22340000:case 22350000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.setLineColor(tg.get_LineColor());if(shapeStyle!==lineStyle){if(shapeStyle!==1){shape.set_Style(lineStyle);}}}
- break;case 2237000:case 22330000:case 211200000:case 23192000:case 23225000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.setLineColor(tg.get_LineColor());if(shapeStyle!==lineStyle){if(shapeStyle!==1){shape.set_Style(lineStyle);}}}
- break;case 22320000:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){shape.setLineColor(tg.get_LineColor());if(shapeStyle!==lineStyle){if(shapeStyle!==2){shape.set_Style(lineStyle);}}}
- break;default:if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){shape.set_Fillstyle(tg.get_FillStyle());shape.setFillColor(tg.get_FillColor());}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE){if(lineType!==22123000){shape.setLineColor(tg.get_LineColor());}
- shape.set_Style(lineStyle);if(hasFill||armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType)||armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,null)){if(lineType!==243111000&&lineType!==243112000&&lineType!==15000001){shape.set_Fillstyle(tg.get_FillStyle());shape.setFillColor(tg.get_FillColor());}}
- switch(lineType){case 13000000:case 14000000:shape.set_Fillstyle(tg.get_FillStyle());shape.setFillColor(tg.get_FillColor());break;case 15000003:shape.setFillColor(null);break;default:break;}}
- break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ResolveModifierShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ResolveModifierShape",exc));}else{throw exc;}}
- return;},GetOpaqueColor:function(color){var r=color.getRed();var g=color.getGreen();var b=color.getBlue();return new armyc2.c2sd.renderer.utilities.Color(r,g,b);},LinesWithFill:function(linetype){var result=false;try{switch(linetype){case 10000000:case 24326100:case 24220000:case 22330000:case 22522100:case 22121000:case 211400000:case 212600000:case 212500000:case 211600000:case 211900000:case 212100000:case 22122000:case 22123000:case 22124000:case 22125000:case 22221000:case 22223000:case 22421000:case 22522210:case 22522220:case 22523000:case 22525000:case 22526000:case 22527000:case 22613000:case 23112000:case 23120000:case 23131100:case 23134000:case 231112000:case 231113000:case 231111000:case 22528000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:case 23330000:case 24250000:case 24211000:case 24210000:case 24230000:case 24225000:case 24240000:case 25211000:case 25212000:case 25221000:case 25222000:case 25223000:case 25225000:case 25224000:result=true;break;default:result=false;break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"LinesWithFill",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside LinesWithFill",exc));}else{throw exc;}}
- return result;},tweakFillColor:function(tg){try{if((armyc2.c2sd.JavaTacticalRenderer.clsUtility.isSameColor(tg.get_LineColor(),tg.get_FillColor())).booleanValue()===false)
- return;var fillColor=tg.get_FillColor();var r=fillColor.getRed();var g=fillColor.getGreen();var b=fillColor.getBlue();var alpha=fillColor.getAlpha();r*=0.9;g*=0.9;b*=0.9;alpha*=0.8;fillColor=new armyc2.c2sd.renderer.utilities.Color(r,g,b,alpha);tg.set_FillColor(fillColor);}
- catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"tweakFillColor",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside tweakFillColor",exc));}else{throw exc;}}
- return;},isSameColor:function(c1,c2){try{if(c1===null||c2===null)
- return true;var r1=c1.getRed();var r2=c2.getRed();var g1=c1.getGreen();var g2=c2.getGreen();var b1=c1.getBlue();var b2=c2.getBlue();if(Math.abs(r1-r2)<5)
- if(Math.abs(g1-g2)<5)
- if(Math.abs(b1-b2)<5)
- return true;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"isSameColor",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside isSameColor",exc));}else{throw exc;}}
- return false;},getLineStroke:function(width,style,cap,round){var stroke=null;try{switch(style){case 0:stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round);break;case 1:var dash=[2*width,2*width,2*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dash,0);break;case 2:var dot=[0.1*width,2*width,0.1*width,2*width,0.1*width,2*width,0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dot,0);break;case 3:var dashdot=[4*width,2*width,0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dashdot,0);break;case 4:var dashdotdot=[2*width,2*width,0.1*width,2*width,0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dashdotdot,0);break;default:stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round);break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"getLineStroke",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getLineStroke",exc));}else{throw exc;}}
- return stroke;},getLineStroke2:function(width,style,cap,round){var stroke=null;try{switch(style){case 0:stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round);break;case 1:var dash=[2*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dash,0);break;case 2:var dot=[0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dot,0);break;case 3:var dashdot=[4*width,2*width,0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dashdot,0);break;case 4:var dashdotdot=[2*width,2*width,0.1*width,2*width,0.1*width,2*width];stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round,4,dashdotdot,0);break;default:stroke=new armyc2.c2sd.graphics2d.BasicStroke(width,cap,round);break;}}
- catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"getLineStroke",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getLineStroke",exc));}else{throw exc;}}
- return stroke;},SetShapeProperties:function(tg,shapes,bi){try{if(shapes===null){return;}
- var j=0;var shape=null;var stroke=null;var dash=null;var lineThickness=tg.get_LineThickness();var shapeType=-1;var lineType=tg.get_LineType();var hasFill=armyc2.c2sd.JavaTacticalRenderer.clsUtility.LinesWithFill(lineType);var isChange1Area=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,null);var isClosedPolygon=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType);for(j=0;j<shapes.size();j++){shape=shapes.get(j);if(shape===null||shape.getShape()===null){continue;}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){switch(tg.get_LineType()){case 32214000:break;default:shape.setFillColor(tg.get_FillColor());break;}}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.ResolveModifierShape(tg,shape);if(lineType===221311000)
- if(j===1)
- shape.setFillColor(null);if(lineType===15000002)
- if(j===0)
- shape.setLineColor(null);shapeType=shape.getShapeType();if(lineType===22123000){armyc2.c2sd.JavaTacticalRenderer.clsUtility.SetLCColor(tg,shape);}
- var rect=null;var grid=null;var tp=tg.get_TexturePaint();if(hasFill||isClosedPolygon||isChange1Area||shapeType===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){switch(shape.get_FillStyle()){case 3:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetOpaqueColor(tg.get_LineColor()));grid.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(2));grid.drawLine(0,8,8,0);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(tg.get_FillColor());grid.dispose();break;case 2:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetOpaqueColor(tg.get_LineColor()));grid.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(2));grid.drawLine(0,0,8,8);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(tg.get_FillColor());grid.dispose();break;case 6:rect=new armyc2.c2sd.graphics2d.Rectangle2D(3,3,8,8);grid=bi.createGraphics();grid.setColor(tg.get_FillColor());grid.drawLine(3,3,5,3);grid.drawLine(5,3,5,5);grid.drawLine(5,5,3,5);grid.drawLine(3,5,5,3);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(null);grid.dispose();break;case 4:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetOpaqueColor(tg.get_LineColor()));grid.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(2));grid.drawLine(4,0,4,8);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(tg.get_FillColor());grid.dispose();break;case 5:rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetOpaqueColor(tg.get_LineColor()));grid.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(2));grid.drawLine(0,4,8,4);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(tg.get_FillColor());grid.dispose();break;case 1:break;default:break;}}
- if(lineThickness===0)
- lineThickness=1;stroke=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getLineStroke(lineThickness,shape.get_Style(),1,1);if(tg.get_Client().equalsIgnoreCase("ge"))
- {if(tg.get_LineType()===22320000&&shape.get_Style()===2)
- shape.set_Style(1);stroke=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getLineStroke2(lineThickness,shape.get_Style(),1,1);}
- if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL){stroke=new armyc2.c2sd.graphics2d.BasicStroke(lineThickness,1,0);}
- shape.setStroke(stroke);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"SetShapeProperties",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetShapeProperties",exc));}else{throw exc;}}
- return;},IsChange1Area:function(lineType,minPoints){try{if(minPoints!==null){minPoints.value=Clazz.newArray(1,0);}
- switch(lineType){case 22421000:if(minPoints!==null){minPoints.value[0]=1;}
- return false;case 15000002:case 24311000:case 24312000:case 24321300:case 24323300:case 24324300:case 24325300:case 24322300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24353000:case 24363000:case 243111000:case 243111001:case 243112000:if(minPoints!==null){minPoints.value[0]=1;}
- return true;case 24326101:case 24321200:case 24323200:case 24325200:case 24324200:case 24322200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24352000:case 24362000:if(minPoints!==null){minPoints.value[0]=1;}
- return true;default:return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"IsChange1Area",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside IsChange1Area",exc));}else{throw exc;}}
- return false;},WriteFile:function(str){try{var bufferedWriter=new java.io.BufferedWriter(new java.io.FileWriter("Test.txt"));bufferedWriter.write(str);bufferedWriter.close();bufferedWriter=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"WriteFile",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside WriteFile",exc));}else{throw exc;}}},CalcIntersectPt:function(pt1,m1,pt2,m2,ptIntersect){try{if(m1===m2){return;}
- var x1=pt1.x;var y1=pt1.y;var x2=pt2.x;var y2=pt2.y;var dx2=((y1-y2+m1*x2-m1*x1)/(m2-m1));var x3=x2+dx2;var y3=(y2+m2*dx2);ptIntersect.x=x3;ptIntersect.y=y3;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"CalcIntersectPt",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcIntersectPt",exc));}else{throw exc;}}
- return;},ChannelWidth:function(pixels,distanceToChannelPOINT2){var width=0;try{var numPOINT2s=Math.floor(pixels.length/2);if(numPOINT2s<3){return 0;}
- var channelWidthPOINT2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var lastSegmentPt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var lastSegmentPt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);lastSegmentPt1.x=pixels[2*numPOINT2s-6];lastSegmentPt1.y=pixels[2*numPOINT2s-5];lastSegmentPt2.x=pixels[2*numPOINT2s-4];lastSegmentPt2.y=pixels[2*numPOINT2s-3];channelWidthPOINT2.x=pixels[2*numPOINT2s-2];channelWidthPOINT2.y=pixels[2*numPOINT2s-1];var m=new armyc2.c2sd.JavaLineArray.ref();var m1=0;var distance=0;var ptIntersect=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var bolVertical=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDouble2(lastSegmentPt1,lastSegmentPt2,m);if(bolVertical==true&&m.value[0]!=0){m1=-1/m.value[0];armyc2.c2sd.JavaTacticalRenderer.clsUtility.CalcIntersectPt(channelWidthPOINT2,m1,lastSegmentPt2,m.value[0],ptIntersect);distance=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(channelWidthPOINT2,ptIntersect);}
- if(bolVertical==true&&m.value[0]==0){distance=Math.abs(channelWidthPOINT2.y-lastSegmentPt1.y);}
- if(bolVertical==false){distance=Math.abs(channelWidthPOINT2.x-lastSegmentPt1.x);distanceToChannelPOINT2.value=Clazz.newArray(1,0);distanceToChannelPOINT2.value[0]=distance;return Math.floor(distance)*4;}
- width=Math.floor(distance)*8;if(width<2){width=2;}
- var hypotenuse=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(lastSegmentPt2,channelWidthPOINT2);distanceToChannelPOINT2.value=Clazz.newArray(1,0);distanceToChannelPOINT2.value[0]=Math.sqrt(hypotenuse*hypotenuse-distance*distance);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ChannelWidth",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ChannelWidth",exc));}else{throw exc;}}
- return width;},InYOrder:function(pt0,pt1,pt2){try{if(pt0.y<=pt1.y&&pt1.y<=pt2.y){return true;}
- if(pt2.y<=pt1.y&&pt1.y<=pt0.y){return true;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"InYOrder",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside InYOrder",exc));}else{throw exc;}}
- return false;},InXOrder:function(pt0,pt1,pt2){try{if(pt0.x<=pt1.x&&pt1.x<=pt2.x){return true;}
- if(pt2.x<=pt1.x&&pt1.x<=pt0.x){return true;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"InXOrder",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside InXOrder",exc));}else{throw exc;}}
- return false;},GetSectorRadiiFromPoints:function(tg){try{if(tg.get_LineType()===243111001)
- return;var ptCenter=tg.LatLongs.get(0);var ptLeftMin=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptRightMax=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var k=0;var strLeft="";var strRight="";var strMin="";var strMax="";var temp="";var nLeft=0;var nRight=0;var nMin=0;var nMax=0;var dist=0;var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();var numSectors=0;if(tg.LatLongs.size()>2){numSectors=Math.floor((tg.LatLongs.size()-2)/2);for(k=0;k<numSectors;k++){ptLeftMin=tg.LatLongs.get(2*k+2);ptRightMax=tg.LatLongs.get(2*k+3);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,ptLeftMin,a12,a21);nLeft=a12.value[0];strLeft=Double.toString(nLeft);nMin=dist;strMin=Double.toString(nMin);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,ptRightMax,a12,a21);nRight=a12.value[0];strRight=Double.toString(nRight);nMax=dist;strMax=Double.toString(nMax);if(k===0){temp=strLeft+","+strRight+","+strMin+","+strMax;}else{temp+=","+strLeft+","+strRight+","+strMin+","+strMax;}}
- if(!temp.equals("")){tg.set_H2(temp);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"GetSectorRadiiFromPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSectorRadiiFromPoints",exc));}else{throw exc;}}},GetRadii:function(tg,lineType){var radius=null;try{if(lineType===243111000&&tg.LatLongs.size()>2){var ptCenter=tg.LatLongs.get(0);var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var dist=0;var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();var rad=0;var temp="";for(var j=2;j<tg.LatLongs.size();j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.LatLongs.get(j));dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,pt,a12,a21);rad=Math.floor(dist);if(rad<=0){continue;}
- if(j===2){temp=Double.toString(rad);}else{temp+=",";temp+=Double.toString(rad);}}
- tg.set_H2(temp);}
- var strRadius=null;var radii=tg.get_H2();if(lineType===243112000){armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetSectorRadiiFromPoints(tg);radii=tg.get_H2();}
- strRadius=radii.$plit(",");var n=strRadius.length;if(n>0){radius=Clazz.newArray(n,0);}else{return null;}
- if(lineType===243111000){for(var k=0;k<n;k++){radius[k]=Double.parseDouble(strRadius[k]);}}else if(lineType===243112000){var numSectors=Math.floor(n/4);var radius2=Clazz.newArray(numSectors*2,0);var l=0;for(k=0;k<numSectors;k++){radius2[l++]=Double.parseDouble(strRadius[4*k+2]);radius2[l++]=Double.parseDouble(strRadius[4*k+3]);}
- radius=radius2;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"GetRadii",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetRadii",exc));}else{throw exc;}}
- return radius;},ReorderPixels:function(pixels){try{var tempPixels;var j;var x;var y;var counter;var numPoints;counter=0;numPoints=Math.floor(pixels.length/2);tempPixels=Clazz.newArray(pixels.length,0);for(j=0;j<numPoints-1;j++){x=pixels[pixels.length-2*j-4];y=pixels[pixels.length-2*j-3];tempPixels[counter]=x;tempPixels[counter+1]=y;counter+=2;}
- var intPixelSize=pixels.length;tempPixels[counter]=pixels[intPixelSize-2];tempPixels[counter+1]=pixels[intPixelSize-1];for(j=0;j<pixels.length;j++){pixels[j]=tempPixels[j];}
- tempPixels=null;return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ReorderPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ReorderPixels",exc));}else{throw exc;}}},FilterVerticalSegments:function(tg){try{switch(tg.get_LineType()){case 22320000:case 22521410:case 21700000:case 21710000:case 22521100:case 22521200:case 22521300:case 22521420:case 22123000:case 22123001:case 231111000:case 231113000:case 231112000:case 231114000:case 231115000:case 231116000:case 231117100:case 15000000:case 231117101:case 231117200:case 231117201:case 231117300:case 231117301:case 23111001:case 25224000:case 25223000:case 25225000:break;default:return;}
- var ptCurrent=null;var ptLast=null;for(var j=1;j<tg.Pixels.size();j++){ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(j-1));ptCurrent=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(j));if(ptCurrent.x===ptLast.x){ptCurrent.x+=Math.pow(-1,j);tg.Pixels.set(j,ptCurrent);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","FilterVerticalSegments",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FilterVerticalSegments",exc));}else{throw exc;}}
- return;},MovePixels2:function(pixels2){try{var pixels=Clazz.newArray(pixels2.size()*2,0);var j=0;var ptTemp=null;for(j=0;j<pixels2.size();j++){ptTemp=pixels2.get(j);pixels[2*j]=ptTemp.x;pixels[2*j+1]=ptTemp.y;}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.MovePixels(pixels,pixels2.size());for(j=0;j<pixels2.size();j++){ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pixels[2*j],pixels[2*j+1]);pixels2.set(j,ptTemp);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"MovePixels2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MovePixels2",exc));}else{throw exc;}}},MovePixels:function(pixels,count){try{var bolNoRepeats=false;var j;var x1;var y1;var x2;var y2;var count2;if(count>0){count2=count;}else{count2=Math.floor(pixels.length/2);}
- bolNoRepeats=false;do{bolNoRepeats=true;for(j=0;j<count2-1;j++){x1=pixels[2*j];y1=pixels[2*j+1];x2=pixels[2*j+2];y2=pixels[2*j+3];if(Math.abs(x2-x1)<1){bolNoRepeats=false;pixels[2*j+2]=x1+1;break;}
- if(Math.abs(y2-y1)<1){bolNoRepeats=false;pixels[2*j+3]=y1+1;break;}}}while(bolNoRepeats===false);return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"MovePixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside MovePixels",exc));}else{throw exc;}}},ComputeLastPoint:function(arrLocation){var locD=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);try{var locA=arrLocation.get(1);var locB=arrLocation.get(0);var dblDx=locB.x-locA.x;var dblDy=locB.y-locA.y;var dblTheta=Math.atan2(-dblDy,dblDx);var locC=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);locC.x=Math.floor((locA.x+0.85*dblDx));locC.y=Math.floor((locA.y+0.85*dblDy));var dblAngle=dblTheta+1.5707963267948966;if(dblAngle>3.141592653589793){dblAngle=dblAngle-6.283185307179586;}
- if(dblAngle<-3.141592653589793){dblAngle=dblAngle+6.283185307179586;}
- var dblWidth=30;locD.x=(locC.x+dblWidth*Math.cos(dblAngle));locD.y=(locC.y-dblWidth*Math.sin(dblAngle));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ComputeLastPoint",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ComputeLastPoint",exc));}else{throw exc;}}
- return locD;},GetSegments:function(pixels,segments,factor){try{var j=0;var m1=new armyc2.c2sd.JavaLineArray.ref();var m2=new armyc2.c2sd.JavaLineArray.ref();var numPoints=0;var bolVertical1=false;var bolVertical2=false;var pt0F=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var pt1F=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var pt2F=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);segments[0]=true;numPoints=Math.floor(pixels.length/2);for(j=0;j<numPoints-2;j++){pt0F.x=pixels[2*j];pt0F.y=pixels[2*j+1];pt1F.x=pixels[2*j+2];pt1F.y=pixels[2*j+3];pt2F.x=pixels[2*j+4];pt2F.y=pixels[2*j+5];bolVertical1=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDoubleForRoutes(pt0F,pt1F,m1);bolVertical2=armyc2.c2sd.JavaLineArray.lineutility.CalcTrueSlopeDoubleForRoutes(pt1F,pt2F,m2);segments[j+1]=true;if(bolVertical1===true&&bolVertical2===true){if(Math.abs(Math.atan(m1.value[0])-Math.atan(m2.value[0]))<1/factor&&armyc2.c2sd.JavaTacticalRenderer.clsUtility.InXOrder(pt0F,pt1F,pt2F)===false){segments[j+1]=false;}}
- if((bolVertical1===false||Math.abs(m1.value[0])>factor)&&(bolVertical2===false||Math.abs(m2.value[0])>factor)&&armyc2.c2sd.JavaTacticalRenderer.clsUtility.InYOrder(pt0F,pt1F,pt2F)===false){segments[j+1]=false;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"GetSegments",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSegments",exc));}else{throw exc;}}
- return;},SetLCColor:function(tg,shape){try{var affiliation=tg.get_Affiliation();if(affiliation!==null&&affiliation.equals("H")){if(shape.getLineColor()===armyc2.c2sd.renderer.utilities.Color.RED){shape.setLineColor(tg.get_LineColor());}else{shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);}}else{if(shape.getLineColor()!==armyc2.c2sd.renderer.utilities.Color.RED){shape.setLineColor(tg.get_LineColor());}else{shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"SetLCColor",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetLCColor",exc));}else{throw exc;}}},ReverseUSASLCPointsByQuadrant:function(tg){try{if(tg.Pixels.size()<2)
- return;var quadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(tg.Pixels.get(0),tg.Pixels.get(1));switch(tg.get_LineType()){case 22123000:case 22123001:if(tg.get_Affiliation()!==null&&tg.get_Affiliation().equals("H")){switch(quadrant){case 2:case 3:break;case 1:case 4:var n=tg.Pixels.size();var pts2=tg.Pixels.clone();for(var j=0;j<tg.Pixels.size();j++)
- tg.Pixels.set(j,pts2.get(n-j-1));break;}}else{switch(quadrant){case 1:case 4:break;case 2:case 3:n=tg.Pixels.size();pts2=tg.Pixels.clone();for(j=0;j<tg.Pixels.size();j++)
- tg.Pixels.set(j,pts2.get(n-j-1));break;}}
- default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"ReverseUSASLCPointsByQuadrant",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ReverseUSASLCPointsByQuadrant",exc));}else{throw exc;}}
- return;},getHatchShape:function(tg,bi){var shape=null;try{switch(tg.get_LineType()){case 23115000:break;default:return null;}
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.moveTo(tg.Pixels.get(0));var j=0;for(j=1;j<tg.Pixels.size();j++){shape.lineTo(tg.Pixels.get(j));}
- shape.setLineColor(new armyc2.c2sd.renderer.utilities.Color(0,0,0,0));shape.set_Fillstyle(3);var rect=null;var grid=null;var tp=tg.get_TexturePaint();rect=new armyc2.c2sd.graphics2d.Rectangle2D(0,0,8,8);grid=bi.createGraphics();grid.setColor(armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetOpaqueColor(tg.get_LineColor()));grid.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(2));grid.drawLine(0,8,8,0);tp=new armyc2.c2sd.graphics2d.TexturePaint(bi,rect);shape.setTexturePaint(tp);shape.setFillColor(new armyc2.c2sd.renderer.utilities.Color(0,0,0,0));grid.dispose();}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"GetHatchShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetHatchShape",exc));}else{throw exc;}}
- return shape;},initializeLinetypes:function(rev){try{if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes!==null||armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs!==null)
- return;armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes=new java.util.HashMap();armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_LINE--------",(10000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_AREA--------",(11000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_CROSS-------",(12000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_ELLIPSE-----",(13000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_RECTANGLE---",(14000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BBS_LINE-------",(15000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BBS_AREA-------",(15000001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BBS_POINT------",(15000002));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BBS_RECTANGLE--",(15000003));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("BS_BBOX--------",(15000004));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOHO---****X",(23200000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPB-----****X",(21100000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPH-----****X",(21200000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPY-----****X",(21300000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPC-----****X",(21400000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPX-----****X",(21500000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPJ-----****X",(21600000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPK-----****X",(21700000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPKF----****X",(21710000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPL-----****X",(21800000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPT-----****X",(211000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPF-----****X",(211100000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPA-----****X",(211200000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPAS----****X",(211210000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPE-----****X",(211400000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPO-----****X",(211600000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPP-----****X",(211700000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPR-----****X",(211800000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPQ-----****X",(211900000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPM-----****X",(212000000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPS-----****X",(212100000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUS----****X",(212210000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUC----****X",(212230000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUG----****X",(212220000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPZ-----****X",(212300000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPW-----****X",(212400000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPWP----****X",(212410000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPV-----****X",(212500000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TP2-----****X",(212600000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGLB---****X",(22121000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGLF---****X",(22122000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGLC---****X",(22123000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGLP---****X",(22124000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGLL---****X",(22125000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAG---****X",(22131000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAA---****X",(22132000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAE---****X",(22133000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAF---****X",(22134000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAD---****X",(22135000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAX---****X",(22136000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAL---****X",(22137000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAP---****X",(22138000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAS---****X",(22139000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAY---****X",(221310000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPGAZ---****X",(221311000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPALC---****X",(22221000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPALM---****X",(22222000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPALS---****X",(22223000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPALU---****X",(22224000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPALL---****X",(22225000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAR---****X",(22231000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAF---****X",(22232000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAH---****X",(22233000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAM---****X",(22234000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAML--****X",(22234100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAMH--****X",(22234200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPAAW---****X",(22235000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPD----****X",(22310000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPA----****X",(22320000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPF----****X",(22330000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPM----****X",(22340000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPY----****X",(22350000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPPC----****X",(2237000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPDLF---****X",(22421000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPDLP---****X",(22422000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPDAB---****X",(22431000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPDABP--****X",(22431100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPDAE---****X",(22432000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLAV--****X",(22521100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLAA--****X",(22521200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLAR--****X",(22521300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLAGM-****X",(22521410));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLAGS-****X",(22521420));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLKA--****X",(22522100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLKGM-****X",(22522210));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLKGS-****X",(22522220));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLF---****X",(22523000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLI---****X",(22524000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLL---****X",(22525000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLT---****X",(22526000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLC---****X",(22527000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOLP---****X",(22528000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAA---****X",(22531000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAK---****X",(22532000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAF---****X",(22533000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAS---****X",(22534000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAO---****X",(22535000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPOAP---****X",(22536000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSLA---****X",(22611000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSLH---****X",(22612000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSLR---****X",(22613000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSLB---****X",(22623000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSAO---****X",(22621000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSAA---****X",(22622000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSAE---****X",(22624000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSAN---****X",(22625000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*GPSAT---****X",(22626000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOGB---****X",(23111000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOGL---****X",(23112000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOGZ---****X",(23113000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOGF---****X",(23114000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOGR---****X",(23115000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOS----****X",(23120000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOADU--****X",(23131100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOADC--****X",(23131200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOAR---****X",(23132000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOAW---****X",(23134000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOMC---****X",(23157000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOFD---****X",(23162000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOFG---****X",(23163000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOFA---****X",(23164000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOEB---****X",(23171000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOEF---****X",(23172000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOET---****X",(23173000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOED---****X",(23174000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOU----****X",(23180000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPORP---****X",(23191000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPORS---****X",(23192000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPORA---****X",(23193000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPORC---****X",(23194000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOT----****X",(231100000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWU---****X",(231111000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWS---****X",(231112000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWD---****X",(231113000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWA---****X",(231114000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWL---****X",(231115000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWH---****X",(231116000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWCS--****X",(231117100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWCD--****X",(231117200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPOWCT--****X",(231117300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBDE---****X",(23211000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBDD---****X",(23212000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBDI---****X",(23213000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCA---****X",(23221000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCB---****X",(23222000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCF---****X",(23223000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCE---****X",(23224000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCD---****X",(23225000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCL---****X",(23226000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPBCR---****X",(23227000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPSL----****X",(23330000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPSW----****X",(23340000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPSP----****X",(23350000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPNM----****X",(23410000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPNR----****X",(23440000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPNB----****X",(23450000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPNC----****X",(23460000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*MPNL----****X",(23490000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLT----****X",(24250000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLTS---****X",(24211000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLTF---****X",(24260000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLCF---****X",(24210000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLCC---****X",(24220000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLCN---****X",(24230000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLCR---****X",(24240000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAT----****X",(24330000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPATR---****X",(24311000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPATC---****X",(24312000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPATG---****X",(24313000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPATS---****X",(24314000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPATB---****X",(24315000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACSI--****X",(24321100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACSR--****X",(24321200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACSC--****X",(24321300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACAI--****X",(24322100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACAR--****X",(24322200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACAC--****X",(24322300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACFI--****X",(24323100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACFR--****X",(24323200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACFC--****X",(24323300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACNI--****X",(24324100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACNR--****X",(24324200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACNC--****X",(24324300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACRI--****X",(24325100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACRR--****X",(24325200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACRC--****X",(24325300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACPR--****X",(24326101));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACPC--****X",(24326200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZII--****X",(24331100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZIR--****X",(24331200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZIC--****X",(24331300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZXI--****X",(24332100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZXR--****X",(24332200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZXC--****X",(24332300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZSI--****X",(24333100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZSR--****X",(24333200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZSC--****X",(24333300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZCI--****X",(24334100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZCR--****X",(24334200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZCC--****X",(24334300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZDI--****X",(24335100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZDR--****X",(24335200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZDC--****X",(24335300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZFI--****X",(24336100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZFR--****X",(24336200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZFC--****X",(24336300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZZI--****X",(24337100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZZR--****X",(24337200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZZC--****X",(24337300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZBI--****X",(24338100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZBR--****X",(24338200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZBC--****X",(24338300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZVI--****X",(24339100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKBI--****X",(24351000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKBR--****X",(24352000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKBC--****X",(24353000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKPI--****X",(24361000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKPR--****X",(24362000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAKPC--****X",(24363000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZVR--****X",(24339200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAZVC--****X",(24339300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAXC---****X",(243111000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPAXS---****X",(243112000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLCM---****X",(25211000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLCH---****X",(25212000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLRM---****X",(25221000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLRA---****X",(25222000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLRO---****X",(25223000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLRT---****X",(25224000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPLRW---****X",(25225000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPAD----****X",(25310000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPAE----****X",(25320000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPAR----****X",(25330000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPAH----****X",(25340000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPASB---****X",(25351000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPASD---****X",(25352000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*SPASR---****X",(25353000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPHN----****X",(26220000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPB-----****X",(26400000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPBE----****X",(26410000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPBA----****X",(26420000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPBT----****X",(26430000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*OPBO----****X",(26440000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("GENERIC---****X",(22131001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPLCM---****X",(24225000));if(rev===1){armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUS----****X",(212210001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUC----****X",(212230001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPUG----****X",(212220001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*TPZ-----****X",(212300001));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACEI--****X",(24333100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACEC--****X",(24333300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACER--****X",(24333200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACDI--****X",(24335100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACDC--****X",(24335300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACDR--****X",(24335200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACZI--****X",(24337100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACZC--****X",(24337300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACZR--****X",(24337200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACBI--****X",(24338100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACBC--****X",(24338300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACBR--****X",(24338200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACVI--****X",(24339100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACVC--****X",(24339300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACVR--****X",(24339200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.put("G*FPACT---****X",(24226000));}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs=new java.util.HashMap();armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFC----L---",(31131000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFCU---L---",(31131100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFC-FG-L---",(31131200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFC-FY-L---",(31131300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFW----L---",(31132000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFWU---L---",(31132100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFW-FG-L---",(31132200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFW-FY-L---",(31132300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFO----L---",(31133000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFOU---L---",(31133100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFO-FY-L---",(31133200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFS----L---",(31134000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFSU---L---",(31134100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFS-FG-L---",(31134200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPFS-FY-L---",(31134300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXT----L---",(31141000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXR----L---",(31142000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXSQ---L---",(31143000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXIL---L---",(31144000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXSH---L---",(31145000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXITCZ-L---",(31146000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXCV---L---",(31147000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DPXITD--L---",(31148000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DWJ-----L---",(31430000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DWS-----L---",(31440000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAIF----A--",(31710000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAMV----A--",(31720000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBATB----A--",(31730000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAI-----A--",(31740000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBALPNC--A--",(31750000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBALPC---A--",(31751000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAFP----A--",(31760000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAT-----A--",(31770000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAFG----A--",(31780000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAD-----A--",(31790000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DBAFF----A--",(317100000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPIB---L---",(31810000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPCO---L---",(31820000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPIS---L---",(31830000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPIT---L---",(31840000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPID---L---",(31850000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPTH---L---",(31860000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WA-DIPFF---L---",(31870000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHHDB---L---",(32259000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILOV---L---",(32151000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILUC---L---",(32152000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILOR---L---",(32153000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILIEO--L---",(32154000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILIEE--L---",(32155000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DILIER--L---",(32156000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DIOC----L---",(32161000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DIOCS---L---",(32162000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DIOL----L---",(32163000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DIOLF---L---",(32164000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHDDL---L---",(32212000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHDDC---L---",(32213000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHDDA----A--",(32214000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCC----L---",(32221000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCI-----A--",(32222000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCB-----A--",(32223000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCW-----A--",(32224000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCF----L---",(32225100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHCF-----A--",(32225200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPBA---L---",(32231400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPBA----A--",(32231500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPBP---L---",(32231700));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WOS-HPFF----A--",(32232400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPMD----A--",(32233100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPMO---L---",(32233400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPMO----A--",(32233500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPMRA--L---",(32233600));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPMRB--L---",(32233700));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPSPA--L---",(32234100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPSPB--L---",(32234200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHPSPS--L---",(32234300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHABP----A--",(32244200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHALLA--L---",(32246000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHHD-----A--",(32253000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHHDF----A--",(32254200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHHDK----A--",(32255200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WOS-HHDR---L---",(322510000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DHHDD----A--",(322512000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DTCCCFE-L---",(32272000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DTCCCFF-L---",(32273000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVA----A--",(32311000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVB----A--",(32312000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVC----A--",(32313000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVD----A--",(32314000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVE----A--",(32315000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVF----A--",(32316000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVG----A--",(32317000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVH----A--",(32318000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DOBVI----A--",(32319000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DBSF-----A--",(32321000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DBSG-----A--",(32322000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DBSM-----A--",(32323000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DBST-----A--",(32324000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSR----A--",(32411100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSC----A--",(32411200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSSVS--A--",(32411300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSSC---A--",(32411400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSSM---A--",(32411500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSSF---A--",(32411600));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSSVF--A--",(32411700));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSIVF--A--",(32411800));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSIF---A--",(32411900));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSIM---A--",(324111000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSIC---A--",(324111100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMSB----A--",(324111200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMS-CO--A--",(324111300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMS-PH--A--",(324111400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMS-SH--A--",(324111500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGML-----A--",(324111600));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMN-----A--",(324111700));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMRS----A--",(32412100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMRM----A--",(32412200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMRR----A--",(32412300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMCL----A--",(32413100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMCM----A--",(32413200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMCH----A--",(32413300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMIBA---A--",(32414100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMIBB---A--",(32414200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMIBC---A--",(32414300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMIBD---A--",(32414400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMIBE---A--",(32414500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBCA---A--",(32415100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBCB---A--",(32415200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBCC---A--",(32415300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTA---A--",(32416100));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTB---A--",(32416200));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTC---A--",(32416300));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTD---A--",(32416400));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTE---A--",(32416500));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTF---A--",(32416600));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTG---A--",(32416700));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTH---A--",(32416800));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DGMBTI---A--",(32416900));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-ML---L---",(32510000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-MA----A--",(32520000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-RA---L---",(32530000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-SA----A--",(32540000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-TA----A--",(32550000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DL-O-----A--",(32560000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DMCA----L---",(32610000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DMCC-----A--",(32620000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DMCD----L---",(32630000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DMOA-----A--",(32670000));armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.put("WO-DMPA----L---",(32680000));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"initializeLinetypes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside initializeLinetypes",exc));}else{throw exc;}}
- return;},GetLinetypeFromString:function(str){var result=-1;try{var strLine=str;var strMask=strLine.substring(0,1)+"*"+strLine.substring(2,3)+"P"+strLine.substring(4,10)+"****X";if(str.equalsIgnoreCase("GENERIC---****X")){strMask=str;}
- else if(str.equalsIgnoreCase("BS_LINE--------")){strMask=str;}else if(str.equalsIgnoreCase("BS_AREA--------")){strMask=str;}else if(str.equalsIgnoreCase("BS_CROSS-------")){strMask=str;}else if(str.equalsIgnoreCase("BS_ELLIPSE-----")){strMask=str;}else if(str.equalsIgnoreCase("BS_RECTANGLE---")){strMask=str;}
- else if(str.equalsIgnoreCase("BBS_LINE-------")){strMask=str;}else if(str.equalsIgnoreCase("BBS_AREA-------")){strMask=str;}else if(str.equalsIgnoreCase("BBS_POINT------")){strMask=str;}
- else if(str.equalsIgnoreCase("BBS_RECTANGLE--")){strMask=str;}
- else if(str.equalsIgnoreCase("BS_BBOX--------")){strMask=str;}
- var objResult=null;if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes!==null&&armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs!==null){objResult=armyc2.c2sd.JavaTacticalRenderer.clsUtility.linetypes.get(strMask);if(objResult!==null&&objResult!==undefined){return objResult;}
- objResult=armyc2.c2sd.JavaTacticalRenderer.clsUtility.metocs.get(strLine);if(objResult!==null&&objResult!==undefined){return objResult;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"CGetLinetypeFromString2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CGetLinetypeFromString2",exc));}else{throw exc;}}
- return result;},setRevC:function(tg){try{var rev=tg.getSymbologyStandard();if(rev===0){switch(tg.get_LineType()){case 22222000:tg.set_LineType(22222001);return;case 22224000:tg.set_LineType(22224001);return;default:return;}}
- if(rev===1){switch(tg.get_LineType()){case 212210000:if(tg.Pixels.size()===4)
- tg.set_LineType(212210001);break;case 212220000:if(tg.Pixels.size()===4)
- tg.set_LineType(212220001);break;case 212230000:if(tg.Pixels.size()===4)
- tg.set_LineType(212230001);break;case 212300000:if(tg.Pixels.size()===4)
- tg.set_LineType(212300001);break;case 24326100:tg.set_LineType(24326101);break;default:break;}}
- switch(tg.get_LineType()){case 212210001:if(tg.Pixels.size()<4)
- tg.set_LineType(212210000);break;case 212220001:if(tg.Pixels.size()<4)
- tg.set_LineType(212220000);break;case 212230001:if(tg.Pixels.size()<4)
- tg.set_LineType(212230000);break;case 212300001:if(tg.Pixels.size()<4)
- tg.set_LineType(212300000);break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"setRevC",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside setRevC",exc));}else{throw exc;}}
- return;},isAutoshape:function(tg){try{var linetype=tg.get_LineType();switch(linetype){case 15000003:case 15000002:case 13000000:case 14000000:case 12000000:case 212600000:case 212500000:case 21100000:case 21200000:case 21300000:case 21400000:case 21500000:case 21600000:case 21800000:case 211000000:case 211100000:case 211200000:case 211210000:case 211400000:case 211600000:case 211700000:case 211800000:case 211900000:case 212000000:case 212100000:case 212210000:case 212230000:case 212220000:case 212210001:case 212230001:case 212220001:case 212300000:case 212300001:case 212400000:case 212410000:case 22139000:case 22221000:case 22222000:case 22223000:case 22225000:case 22224000:case 22310000:case 22422000:case 22524000:case 22533000:case 22534000:case 22611000:case 23157000:case 23163000:case 23171000:case 23172000:case 23174000:case 23173000:case 23191000:case 23194000:case 23192000:case 23193000:case 231100000:case 23211000:case 23212000:case 23213000:case 23221000:case 23222000:case 23223000:case 23224000:case 23225000:case 23226000:case 23227000:case 23340000:case 23410000:case 25211000:case 25212000:case 24250000:case 24211000:case 24260000:case 26400000:case 26420000:case 26410000:case 26440000:case 26430000:return true;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"isAutoshape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside isAutoshape",exc));}else{throw exc;}}
- return false;},getMSRSegmentColors:function(tg){var hMap=null;try{var linetype=tg.get_LineType();switch(linetype){case 25221000:case 25222000:case 22121000:if(tg.get_H()===null||tg.get_H().isEmpty())
- return null;hMap=new java.util.HashMap();break;default:return null;}
- var colorStrs=tg.get_H().$plit(",");var j=0;var numSegs=colorStrs.length;var segPlusColor="";var seg=null;var color=null;var index=-1;for(j=0;j<numSegs;j++){segPlusColor=colorStrs[j];if(!segPlusColor.contains(":"))
- continue;seg=segPlusColor.$plit(":");color=armyc2.c2sd.renderer.utilities.SymbolUtilities.getColorFromHexString(seg[1]);index=Integer.parseInt(seg[0]);hMap.put(new Integer(index),color);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"getMSRSegmentColors",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getMSRSegmentColors",exc));}else{throw exc;}}
- return hMap;},reviseHModifier:function(originalPixels,tg){try{if(tg.get_H()===null||tg.get_H().isEmpty())
- return;var linetype=tg.get_LineType();switch(linetype){case 25222000:case 25221000:case 22121000:break;default:return;}
- var j=0;var k=0;var n=-1;var foundPt=false;for(j=0;j<originalPixels.size();j++){for(k=0;k<tg.Pixels.size();k++){if(originalPixels.get(j).x===tg.Pixels.get(k).x&&originalPixels.get(j).y===tg.Pixels.get(k).y){n=j;foundPt=true;break;}}
- if(foundPt)
- break;}
- var hmap=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getMSRSegmentColors(tg);var hmap2=new java.util.HashMap();var segPt0=null;var segPt1=null;var pt0=null;var pt1=null;var color=null;if(n<1)
- n=1;for(var key,$key=hmap.keySet().iterator();$key.hasNext()&&((key=$key.next())||true);){if((key).intValue()<n-1)
- continue;if((key).intValue()+1>originalPixels.size()-1)
- break;color=hmap.get(key);segPt0=originalPixels.get((key).intValue());segPt1=originalPixels.get((key).intValue()+1);for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(segPt0.x===pt0.x&&segPt0.y===pt0.y){hmap2.put(new Integer(j),color);break;}else if(segPt1.x===pt1.x&&segPt1.y===pt1.y){hmap2.put(new Integer(j),color);break;}else{if(pt0.x===segPt1.x&&pt0.y===segPt1.y)
- continue;if(pt1.x===segPt0.x&&pt1.y===segPt0.y)
- continue;else{var dist0=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(segPt0,segPt1,pt0);var dist1=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceToLineDouble(segPt0,segPt1,pt1);var lineOrigPts=new armyc2.c2sd.graphics2d.Line2D(segPt0.x,segPt0.y,segPt1.x,segPt1.y);var rectOrigPts=lineOrigPts.getBounds2D();var lineClipPts=new armyc2.c2sd.graphics2d.Line2D(pt0.x,pt0.y,pt1.x,pt1.y);var rectClipPts=lineClipPts.getBounds2D();if(dist0<1&&dist1<1&&rectOrigPts.containsRect(rectClipPts)){hmap2.put(new Integer(j),color);}}}}}
- if(hmap2.isEmpty()){tg.set_H(null);return;}
- var h="";var temp="";for(var key,$key=hmap2.keySet().iterator();$key.hasNext()&&((key=$key.next())||true);){color=hmap2.get(key);temp=Integer.toHexString(color.toARGB());h+=key.toString()+":"+temp+",";}
- h=h.substring(0,h.length-1);tg.set_H(h);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"reviseHModifer",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside reviseHModifier",exc));}else{throw exc;}}},InterpolatePixels:function(tg){try{if(tg.get_UseLineInterpolation()===false)
- return;var linetype=tg.get_LineType();var glyphSize=10;switch(linetype){case 23131100:case 23131200:case 23132000:glyphSize=25;break;case 22350000:glyphSize=20;break;case 22122000:case 22123000:case 22134000:case 23330000:case 22624000:case 23111000:case 23113000:case 23114000:case 23115000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:case 23350000:case 15000000:glyphSize=30;break;case 231111000:case 23112000:case 23134000:case 231112000:glyphSize=40;break;case 231113000:glyphSize=50;break;default:return;}
- var hmapPixels=new java.util.HashMap();var hmapGeo=new java.util.HashMap();var j=0;var currentIndex=0;var dist=0;var dist2=0;var direction1=0;var direction2=0;var delta=0;var pt0=null;var pt1=null;var pt2=null;for(j=0;j<tg.Pixels.size();j++){if(j===0){hmapPixels.put(new Integer(j),tg.Pixels.get(j));hmapGeo.put(new Integer(j),tg.LatLongs.get(j));currentIndex=0;}else if(j===tg.Pixels.size()-1){hmapPixels.put(new Integer(j),tg.Pixels.get(j));hmapGeo.put(new Integer(j),tg.LatLongs.get(j));}else{dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(tg.Pixels.get(currentIndex),tg.Pixels.get(j));dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(tg.Pixels.get(j),tg.Pixels.get(j+1));pt0=tg.Pixels.get(currentIndex);pt1=tg.Pixels.get(j);pt2=tg.Pixels.get(j+1);direction1=(57.29577951308232)*Math.atan((pt0.y-pt1.y)/(pt0.x-pt1.x));direction2=(57.29577951308232)*Math.atan((pt1.y-pt2.y)/(pt1.x-pt2.x));delta=Math.abs(direction1-direction2);if(dist>glyphSize||dist2>glyphSize||delta>20){hmapPixels.put(new Integer(j),tg.Pixels.get(j));hmapGeo.put(new Integer(j),tg.LatLongs.get(j));currentIndex=j;}}}
- var pixels=new java.util.ArrayList();var geo=new java.util.ArrayList();for(j=0;j<tg.Pixels.size();j++){if(hmapPixels.containsKey(new Integer(j)))
- pixels.add(hmapPixels.get(new Integer(j)));if(hmapGeo.containsKey(new Integer(j)))
- geo.add(hmapGeo.get(new Integer(j)));}
- switch(linetype){case 22350000:case 22134000:case 22624000:case 23111000:case 23113000:case 23114000:case 23115000:case 23350000:if(pixels.size()===2){for(j=0;j<tg.Pixels.size();j++){if(hmapPixels.containsKey(new Integer(j))===false&&hmapGeo.containsKey(new Integer(j))===false){pixels.add(j,tg.Pixels.get(j));geo.add(j,tg.LatLongs.get(j));break;}}}
- break;default:break;}
- tg.Pixels=pixels;tg.LatLongs=geo;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.clsUtility._className,"InterpolatePixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside InterpolatePixels",exc));}else{throw exc;}}},linetypes:null,metocs:null,_className:"clsUtility"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaTacticalRenderer=armyc2.c2sd.JavaTacticalRenderer||{};armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic={DegToRad:function(deg){return deg/180.0*3.141592653589793;},RadToDeg:function(rad){return rad/3.141592653589793*180.0;},GetAzimuth:function(c1,c2){var theta=0;try{var lat1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c1.y);var lon1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c1.x);var lat2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c2.y);var lon2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c2.x);var y=Math.sin(lon2-lon1);y*=Math.cos(lat2);var x=Math.cos(lat1);x*=Math.sin(lat2);var z=Math.sin(lat1);z*=Math.cos(lat2);z*=Math.cos(lon2-lon1);x=x-z;theta=Math.atan2(y,x);theta=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.RadToDeg(theta);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"GetAzimuth",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetAzimuth",exc));}else{throw exc;}}
- return theta;},geodesic_distance:function(c1,c2,a12,a21){var h=0;try{if(a12!==null&&a21!==null){a12.value=Clazz.newArray(1,0);a21.value=Clazz.newArray(1,0);a12.value[0]=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(c1,c2);a21.value[0]=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(c2,c1);}
- var dLat=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c2.y-c1.y);var dLon=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c2.x-c1.x);var b=0;var lat1=0;var lat2=0;var e=0;var f=0;var g=0;var k=0;b=Math.sin(dLat/2);lat1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c1.y);lat2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(c2.y);e=Math.sin(dLon/2);f=Math.cos(lat1);g=Math.cos(lat2);var a=b*b+f*g*e*e;h=Math.sqrt(a);k=Math.sqrt(1-a);h=2*Math.atan2(h,k);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"geodesic_distance",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside geodesic_distance",exc));}else{throw exc;}}
- return armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.sm_a*h;},geodesic_coordinate:function(start,distance,azimuth){var pt=null;try{var a=0;var b=0;var c=0;var d=0;var e=0;var f=0;var g=0;var h=0;var j=0;var k=0;var l=0;var m=0;var n=0;var p=0;var q=0;a=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(start.y);b=Math.cos(a);c=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(azimuth);d=Math.sin(a);e=Math.cos(distance/armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.sm_a);f=Math.sin(distance/armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.sm_a);g=Math.cos(c);var lat=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.RadToDeg(Math.asin(d*e+b*f*g));h=Math.sin(c);k=Math.sin(h);l=Math.cos(a);m=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(lat);n=Math.sin(m);p=Math.atan2(h*f*b,e-d*n);var lon=Double.parseDouble(start.x)+armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.RadToDeg(p);pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(lon,lat);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"geodesic_coordinate",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside geodesic_coordinate",exc));}else{throw exc;}}
- return pt;},GetGeodesicArc:function(pPoints){var pPoints2=new java.util.ArrayList();try{if(pPoints===null){return null;}
- if(pPoints.length<3){return null;}
- var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[0]);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[1]);var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints[2]);var ptTemp=null;var a12b=new armyc2.c2sd.JavaLineArray.ref();var dist2=0.0;var dist1=0.0;var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();dist1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,pt1,a12,a21);var saveAzimuth=a21.value[0];dist2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,pt2,a12b,a21);if(Math.abs(a21.value[0]-saveAzimuth)<=1){if(a12.value[0]<360){a12.value[0]+=360;}
- a12b.value[0]=a12.value[0]+360;}
- var a12c=new armyc2.c2sd.JavaLineArray.ref();var j=0;if(a12b.value[0]<0){a12b.value[0]=360+a12b.value[0];}
- if(a12.value[0]<0){a12.value[0]=360+a12.value[0];}
- if(a12b.value[0]<a12.value[0]){a12b.value[0]=a12b.value[0]+360;}
- a12c.value=Clazz.newArray(1,0);for(j=0;j<=100;j++){a12c.value[0]=a12.value[0]+(j/100.0)*(a12b.value[0]-a12.value[0]);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,dist1,a12c.value[0]);pPoints2.add(ptTemp);}
- if(Math.abs(a21.value[0]-saveAzimuth)>1){pPoints2.add(ptCenter);}
- if(a12.value[0]<a12b.value[0]){pPoints2.add(pt1);}else{pPoints2.add(pt2);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"GetGeodesicArc",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetGeodesicArc",exc));}else{throw exc;}}
- return pPoints2;},GetGeodesicArc2:function(pPoints,pPoints2){var circle=false;try{var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints.get(0));var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints.get(1));var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPoints.get(2));var a12b=new armyc2.c2sd.JavaLineArray.ref();var dist1=0;var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();dist1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,pt1,a12,a21);var saveAzimuth=a21.value[0];var dist2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(ptCenter,pt2,a12b,a21);if(Math.abs(a21.value[0]-saveAzimuth)<=1){if(a12.value[0]<360){a12.value[0]+=360;}
- a12b.value[0]=a12.value[0]+360;circle=true;}
- var a12c=new armyc2.c2sd.JavaLineArray.ref();a12c.value=Clazz.newArray(1,0);var j=0;var pPoint=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();if(a12b.value[0]<0){a12b.value[0]=360+a12b.value[0];}
- if(a12.value[0]<0){a12.value[0]=360+a12.value[0];}
- if(a12b.value[0]<a12.value[0]){a12b.value[0]=a12b.value[0]+360;}
- for(j=0;j<=100;j++){a12c.value[0]=a12.value[0]+(j/100)*(a12b.value[0]-a12.value[0]);pPoint=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,dist1,a12c.value[0]);pPoints2.add(pPoint);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"GetGeodesicArc2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetGeodesicArc2",exc));}else{throw exc;}}
- return circle;},IntersectLines:function(p1,brng1,p2,brng2){var ptResult=null;try{var lat1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(p1.y);var lon1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(p1.x);var lat2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(p2.y);var lon2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(p2.x);var brng13=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(brng1);var brng23=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.DegToRad(brng2);var dLat=lat2-lat1;var dLon=lon2-lon1;var dist12=2*Math.asin(Math.sqrt(Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(lat1)*Math.cos(lat2)*Math.sin(dLon/2)*Math.sin(dLon/2)));if(dist12===0){return null;}
- var brngA=Math.acos((Math.sin(lat2)-Math.sin(lat1)*Math.cos(dist12))/(Math.sin(dist12)*Math.cos(lat1)));if(Double.isNaN(brngA)){brngA=0;}
- var brngB=Math.acos((Math.sin(lat1)-Math.sin(lat2)*Math.cos(dist12))/(Math.sin(dist12)*Math.cos(lat2)));var brng12=0;var brng21=0;if(Math.sin(lon2-lon1)>0){brng12=brngA;brng21=6.283185307179586-brngB;}else{brng12=6.283185307179586-brngA;brng21=brngB;}
- var alpha1=(brng13-brng12+3.141592653589793)%(6.283185307179586)-3.141592653589793;var alpha2=(brng21-brng23+3.141592653589793)%(6.283185307179586)-3.141592653589793;if(Math.sin(alpha1)===0&&Math.sin(alpha2)===0){return null;}
- if(Math.sin(alpha1)*Math.sin(alpha2)<0){return null;}
- var alpha3=Math.acos(-Math.cos(alpha1)*Math.cos(alpha2)+Math.sin(alpha1)*Math.sin(alpha2)*Math.cos(dist12));var dist13=Math.atan2(Math.sin(dist12)*Math.sin(alpha1)*Math.sin(alpha2),Math.cos(alpha2)+Math.cos(alpha1)*Math.cos(alpha3));var lat3=Math.asin(Math.sin(lat1)*Math.cos(dist13)+Math.cos(lat1)*Math.sin(dist13)*Math.cos(brng13));var dLon13=Math.atan2(Math.sin(brng13)*Math.sin(dist13)*Math.cos(lat1),Math.cos(dist13)-Math.sin(lat1)*Math.sin(lat3));var lon3=lon1+dLon13;lon3=(lon3+3.141592653589793)%(6.283185307179586)-3.141592653589793;ptResult=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.RadToDeg(lon3),armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.RadToDeg(lat3));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"IntersectLines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside IntersectLines",exc));}else{throw exc;}}
- return ptResult;},SegmentGeoPoints:function(geoPoints,interval,lineType){var resultPts=new java.util.ArrayList();try{switch(lineType){case 22350000:case 23350000:case 231117300:case 231117200:case 231117100:case 231116000:case 231115000:case 231114000:case 231113000:case 231112000:case 23112000:case 22123000:case 22122000:case 23134000:case 22624000:case 23113000:case 23115000:case 23114000:case 23131100:case 23131200:case 23132000:case 22134000:case 23330000:case 23111000:case 23111001:break;default:return geoPoints;}
- var j=0;var k=0;var n=0;var pt0=null;var pt1=null;var pt=null;var dist=0;var az=0;var remainder=0;for(j=0;j<geoPoints.size()-1;j++){pt0=geoPoints.get(j);pt1=geoPoints.get(j+1);az=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(pt0,pt1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(geoPoints.get(j),geoPoints.get(j+1),null,null);n=Math.floor((dist/interval));remainder=dist-n*interval;if(remainder<interval/2)
- n-=1;resultPts.add(pt0);for(k=1;k<=n;k++){pt=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,interval*k,az);resultPts.add(pt);}}
- resultPts.add(pt1);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic._className,"SegmentGeoPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SegmentGeoPoints",exc));}else{throw exc;}}
- return resultPts;},_className:"mdlGeodesic",sm_a:6378137};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.Color=function(R,G,B,A){this.A=255;this.R=0;this.G=0;this.B=0;this.R=R;this.G=G;this.B=B;if(A!==undefined)
- this.A=A;};armyc2.c2sd.renderer.utilities.Color.prototype.convert=function(integer)
- {var hexAlphabet="0123456789ABCDEF";return isNaN(integer)?"00":hexAlphabet.charAt((integer-integer%16)/16)+hexAlphabet.charAt(integer%16);};armyc2.c2sd.renderer.utilities.Color.prototype.getAlpha=function()
- {return this.A;};armyc2.c2sd.renderer.utilities.Color.prototype.getRed=function()
- {return this.R;};armyc2.c2sd.renderer.utilities.Color.prototype.getGreen=function()
- {return this.G;};armyc2.c2sd.renderer.utilities.Color.prototype.getBlue=function()
- {return this.B;};armyc2.c2sd.renderer.utilities.Color.prototype.toARGB=function()
- {return(this.A<<24)+((this.R&0xFF)<<16)+((this.G&0xFF)<<8)+(this.B&0xFF);};armyc2.c2sd.renderer.utilities.Color.prototype.toHexString=function(withAlpha)
- {if(withAlpha===false)
- {return"#"+this.convert(this.R)+
- this.convert(this.G)+
- this.convert(this.B);}
- else
- {return"#"+this.convert(this.A)+
- this.convert(this.R)+
- this.convert(this.G)+
- this.convert(this.B);}};armyc2.c2sd.renderer.utilities.Color.prototype.toKMLHexString=function()
- {return"#"+
- this.convert(this.A)+
- this.convert(this.B)+
- this.convert(this.G)+
- this.convert(this.R);};armyc2.c2sd.renderer.utilities.Color.getAlphaFromColor=function(color)
- {var alpha=255;if(color>16777215)alpha=(color>>>24);return alpha;};armyc2.c2sd.renderer.utilities.Color.getRedFromColor=function(color)
- {var red=255;red=(color>>16)&0xFF;return red;};armyc2.c2sd.renderer.utilities.Color.getGreenFromColor=function(color)
- {var green=255;green=(color>>8)&0xFF;return green;};armyc2.c2sd.renderer.utilities.Color.getBlueFromColor=function(color)
- {var blue=255;if(color>16777215)
- blue=color&0x000000FF;else
- blue=color&0x0000FF;return blue;};armyc2.c2sd.renderer.utilities.Color.getColorFromHexString=function(hexValue)
- {var hexOriginal=new String(hexValue);var hexAlphabet="0123456789ABCDEF";if(hexValue.charAt(0)==='#')
- hexValue=hexValue.substring(1);if(hexValue.substring(0,2)===("0x")||hexValue.substring(0,2)===("0X"))
- hexValue=hexValue.substring(2);hexValue=hexValue.toUpperCase();var count=hexValue.length,value=null,k=0,int1=0,int2=0;if(count===8||count===6)
- {value=new Array();for(var i=0;i<count;i+=2)
- {int1=hexAlphabet.indexOf(hexValue.charAt(i));int2=hexAlphabet.indexOf(hexValue.charAt(i+1));value[k]=(int1*16)+int2;k++;}
- if(count===8)
- {return new armyc2.c2sd.renderer.utilities.Color(value[1],value[2],value[3],value[0]);}
- else if(count===6)
- {return new armyc2.c2sd.renderer.utilities.Color(value[0],value[1],value[2]);}}
- else
- {}
- return null;};armyc2.c2sd.renderer.utilities.Color.rgbToHexString=function(r,g,b,a)
- {var temp=new armyc2.c2sd.renderer.utilities.Color(r,g,b,a);return temp.toHexString(true);};armyc2.c2sd.renderer.utilities.Color.white=new armyc2.c2sd.renderer.utilities.Color(255,255,255);armyc2.c2sd.renderer.utilities.Color.WHITE=armyc2.c2sd.renderer.utilities.Color.white;armyc2.c2sd.renderer.utilities.Color.lightGray=new armyc2.c2sd.renderer.utilities.Color(192,192,192);armyc2.c2sd.renderer.utilities.Color.LIGHT_GRAY=armyc2.c2sd.renderer.utilities.Color.lightGray;armyc2.c2sd.renderer.utilities.Color.gray=new armyc2.c2sd.renderer.utilities.Color(128,128,128);armyc2.c2sd.renderer.utilities.Color.GRAY=armyc2.c2sd.renderer.utilities.Color.gray;armyc2.c2sd.renderer.utilities.Color.darkGray=new armyc2.c2sd.renderer.utilities.Color(64,64,64);armyc2.c2sd.renderer.utilities.Color.DARK_GRAY=armyc2.c2sd.renderer.utilities.Color.darkGray;armyc2.c2sd.renderer.utilities.Color.black=new armyc2.c2sd.renderer.utilities.Color(0,0,0);armyc2.c2sd.renderer.utilities.Color.BLACK=armyc2.c2sd.renderer.utilities.Color.black;armyc2.c2sd.renderer.utilities.Color.red=new armyc2.c2sd.renderer.utilities.Color(255,0,0);armyc2.c2sd.renderer.utilities.Color.RED=armyc2.c2sd.renderer.utilities.Color.red;armyc2.c2sd.renderer.utilities.Color.pink=new armyc2.c2sd.renderer.utilities.Color(255,175,175);armyc2.c2sd.renderer.utilities.Color.PINK=armyc2.c2sd.renderer.utilities.Color.pink;armyc2.c2sd.renderer.utilities.Color.orange=new armyc2.c2sd.renderer.utilities.Color(255,200,0);armyc2.c2sd.renderer.utilities.Color.ORANGE=armyc2.c2sd.renderer.utilities.Color.orange;armyc2.c2sd.renderer.utilities.Color.yellow=new armyc2.c2sd.renderer.utilities.Color(255,255,0);armyc2.c2sd.renderer.utilities.Color.YELLOW=armyc2.c2sd.renderer.utilities.Color.yellow;armyc2.c2sd.renderer.utilities.Color.green=new armyc2.c2sd.renderer.utilities.Color(0,255,0);armyc2.c2sd.renderer.utilities.Color.GREEN=armyc2.c2sd.renderer.utilities.Color.green;armyc2.c2sd.renderer.utilities.Color.magenta=new armyc2.c2sd.renderer.utilities.Color(255,0,255);armyc2.c2sd.renderer.utilities.Color.MAGENTA=armyc2.c2sd.renderer.utilities.Color.magenta;armyc2.c2sd.renderer.utilities.Color.cyan=new armyc2.c2sd.renderer.utilities.Color(0,255,255);armyc2.c2sd.renderer.utilities.Color.CYAN=armyc2.c2sd.renderer.utilities.Color.cyan;armyc2.c2sd.renderer.utilities.Color.blue=new armyc2.c2sd.renderer.utilities.Color(0,0,255);armyc2.c2sd.renderer.utilities.Color.BLUE=armyc2.c2sd.renderer.utilities.Color.blue;var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.AffiliationColors=armyc2.c2sd.renderer.utilities.AffiliationColors||{};armyc2.c2sd.renderer.utilities.AffiliationColors.FriendlyUnitFillColor=armyc2.c2sd.renderer.utilities.Color.CYAN;armyc2.c2sd.renderer.utilities.AffiliationColors.HostileUnitFillColor=armyc2.c2sd.renderer.utilities.Color.RED;armyc2.c2sd.renderer.utilities.AffiliationColors.NeutralUnitFillColor=armyc2.c2sd.renderer.utilities.Color.GREEN;armyc2.c2sd.renderer.utilities.AffiliationColors.UnknownUnitFillColor=armyc2.c2sd.renderer.utilities.Color.YELLOW;armyc2.c2sd.renderer.utilities.AffiliationColors.FriendlyGraphicFillColor=new armyc2.c2sd.renderer.utilities.Color(128,224,255);armyc2.c2sd.renderer.utilities.AffiliationColors.HostileGraphicFillColor=new armyc2.c2sd.renderer.utilities.Color(255,128,128);armyc2.c2sd.renderer.utilities.AffiliationColors.NeutralGraphicFillColor=new armyc2.c2sd.renderer.utilities.Color(170,255,170);armyc2.c2sd.renderer.utilities.AffiliationColors.UnknownGraphicFillColor=new armyc2.c2sd.renderer.utilities.Color(255,255,128);armyc2.c2sd.renderer.utilities.AffiliationColors.FriendlyUnitLineColor=armyc2.c2sd.renderer.utilities.Color.BLACK;armyc2.c2sd.renderer.utilities.AffiliationColors.HostileUnitLineColor=armyc2.c2sd.renderer.utilities.Color.BLACK;armyc2.c2sd.renderer.utilities.AffiliationColors.NeutralUnitLineColor=armyc2.c2sd.renderer.utilities.Color.BLACK;armyc2.c2sd.renderer.utilities.AffiliationColors.UnknownUnitLineColor=armyc2.c2sd.renderer.utilities.Color.BLACK;armyc2.c2sd.renderer.utilities.AffiliationColors.FriendlyGraphicLineColor=armyc2.c2sd.renderer.utilities.Color.BLACK;armyc2.c2sd.renderer.utilities.AffiliationColors.HostileGraphicLineColor=armyc2.c2sd.renderer.utilities.Color.RED;armyc2.c2sd.renderer.utilities.AffiliationColors.NeutralGraphicLineColor=armyc2.c2sd.renderer.utilities.Color.GREEN;armyc2.c2sd.renderer.utilities.AffiliationColors.UnknownGraphicLineColor=armyc2.c2sd.renderer.utilities.Color.YELLOW;armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherRed=new armyc2.c2sd.renderer.utilities.Color(198,16,33);armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherBlue=new armyc2.c2sd.renderer.utilities.Color(0,0,255);armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherPurpleDark=new armyc2.c2sd.renderer.utilities.Color(128,0,128);armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherPurpleLight=new armyc2.c2sd.renderer.utilities.Color(226,159,255);armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherBrownDark=new armyc2.c2sd.renderer.utilities.Color(128,98,16);armyc2.c2sd.renderer.utilities.AffiliationColors.WeatherBrownLight=new armyc2.c2sd.renderer.utilities.Color(210,176,106);if(!(window&&window.console)){this.console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},dir:function(){}};}
- var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.ErrorLogger=(function(){var _level="800";var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];if(typeof String.prototype.trim!=='function')
- {String.prototype.trim=function()
- {return this.replace(/^\s+|\s+$/g,'');};}
- function getDateString(date)
- {var strDate="";try
- {strDate+=months[date.getMonth()]+" "+
- date.getDate()+", "+
- date.getFullYear()+" "+
- date.getHours()+":"+
- date.getMinutes()+":"+
- date.getSeconds()+"."+
- date.getMilliseconds();}
- catch(err)
- {strDate=date.toString();}
- return strDate;}
- return{OFF:Number.MAX_VALUE,SEVERE:1000,WARNING:900,INFO:800,CONFIG:700,FINE:500,FINER:400,FINEST:300,ALL:Number.MIN_VALUE,getLevelName:function(level)
- {var name="unknown";switch(level)
- {case Number.MAX_VALUE:name="OFF";break;case 1000:name="Severe";break;case 900:name="Warning";break;case 800:name="Info";break;case 700:name="Config";break;case 500:name="Fine";break;case 400:name="Finer";break;case 300:name="Finest";break;case Number.MIN_VALUE:name="ALL";break;default:name="Unknown Error Level";break;}
- return name;},setLevel:function(level)
- {_level=level;},getLevel:function()
- {return _level;},Entering:function(sourceClass,sourceMethod,param1)
- {if(_level<=this.FINER)
- {if(console!==undefined)
- {console.log("Entering: "+sourceClass+"."+sourceMethod+"()");}}},Exiting:function(sourceClass,sourceMethod,param1)
- {if(_level<=this.FINER)
- {if(console!==undefined)
- {console.log("Exiting: "+sourceClass+"."+sourceMethod+"()");}}},LogMessage:function(sourceClass,sourceMethod,message,level)
- {if(level===undefined||level===null)
- level=800;if(level>=_level)
- {if(console!==undefined)
- {message=getDateString(new Date())+" "+sourceClass+" "+sourceMethod+"\n"+
- this.getLevelName(level)+": "+message;console.info(message);}}},LogWarning:function(sourceClass,sourceMethod,message,level)
- {if(level===undefined||level===null)
- level=900;if(level>=_level)
- {if(console!==undefined)
- {message=getDateString(new Date())+" "+sourceClass+" "+sourceMethod+"\n"+
- this.getLevelName(level)+": "+message;console.warn(message);}}},LogException:function(sourceClass,sourceMethod,err,param,level)
- {if(level===undefined||level===null)
- level=1000;if(level>=_level)
- {if(console!==undefined)
- {var message=getDateString(new Date())+" "+sourceClass+" "+sourceMethod+"\n"+
- this.getLevelName(level)+": ";message+=err.name+": "+err.message;var stack=null;if(err.stack)
- {stack=err.stack;}
- if(console.groupCollapsed)
- {console.error(message);if(stack!==null)
- {console.groupCollapsed("Stack Trace:");console.error(err.stack);if(console.dir&¶m)
- {console.dir(param);}
- console.groupEnd();}}
- else
- {if(stack!==null)
- {message+="\n"+stack;}
- console.error(message);if(console.dir&¶m)
- {console.info(param);}}}}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.RendererException=function(message,throwable){throwable.message+=" - "+message;return throwable;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.MilStdSymbol=function(symbolID,uniqueID,coordinates,modifiers){var SymbolUtilties=armyc2.c2sd.renderer.utilities.SymbolUtilities;var RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;this._Properties={};this._X_Altitude=null;this._AM_Distance=null;this._AN_Azimuth=null;this._symbolID="";this._UUID=null;this._SymbolShapes=null;this._ModifierShapes=null;this._Coordinates=null;this._UnitSize=0;this._scale=0;this._KeepUnitRatio=true;this._LineWidth=3;this._LineColor=null;this._FillColor=null;this._Rotation=0.0;this._Outline=false;this._OutLineColor=null;this._OutLineWidth=0;this._symStd=0;this._UseLineInterpolation=true;this._DrawAffiliationModifierAsLabel=true;this._tp=null;this._Tag=null;if(modifiers===undefined||modifiers===null)
- modifiers={};else
- this._Properties=modifiers;this._UUID=uniqueID;this._Coordinates=coordinates;this.setSymbolID(symbolID);this._LineColor=SymbolUtilties.getLineColorOfAffiliation(this._symbolID);if(SymbolUtilties.hasDefaultFill(this._symbolID))
- this._FillColor=SymbolUtilties.getFillColorOfAffiliation(this._symbolID);this._KeepUnitRatio=true;this._symStd=RendererSettings.getSymbologyStandard();this._DrawAffiliationModifierAsLabel=RendererSettings.getDrawAffiliationModifierAsLabel();this._UseLineInterpolation=RendererSettings.getUseLineInterpolation();this._OutLineWidth=RendererSettings.getSinglePointSymbolOutlineWidth();};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setModifier_AM_AN_X=function(modifier,value,index)
- {if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE||modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH||modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH)
- {var modifiers=null;if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE)
- {if(this._AM_Distance===null)
- this._AM_Distance=new Array();modifiers=this._AM_Distance;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH)
- {if(this._AN_Azimuth===null)
- this._AN_Azimuth=new Array();modifiers=this._AN_Azimuth;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH)
- {if(this._X_Altitude===null)
- this._X_Altitude=new Array();modifiers=this._X_Altitude;}
- if(index+1>modifiers.length)
- {modifiers.push(value);}
- else
- {modifiers[index]=value;}}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setModifier=function(modifier,value,index)
- {if(this._Properties===null)
- {this._Properties={};}
- else if(index===undefined)
- {index=0;}
- if(value!==undefined&&value!==null&&value!=="")
- {if(!(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE||modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH||modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH))
- {this._Properties[modifier]=value;}
- else
- {this.setModifier_AM_AN_X(modifier,value,index);}}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setSymbolID=function(value)
- {var current=this._symbolID;try
- {if(value!==null&&value!==""&¤t!==value){this._symbolID=value;}
- if(armyc2.c2sd.renderer.utilities.SymbolUtilities.getAffiliation(value)===("H")){var basicID=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(value);if(armyc2.c2sd.renderer.utilities.SymbolUtilities.isObstacle(basicID)||basicID===("G*M*NZ----****X")||basicID===("G*M*NEB---****X")||basicID===("G*M*NEC---****X")){this.setModifier("N","ENY");}}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MilStdSymbol","setSymbolID",err);}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setSymbologyStandard=function(symStd)
- {this._symStd=symStd;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getSymbologyStandard=function()
- {return this._symStd;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setFillStyle=function(value)
- {this._tp=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getFillStyle=function()
- {return this._tp;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setUseLineInterpolation=function(value)
- {this._UseLineInterpolation=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getUseLineInterpolation=function()
- {return this._UseLineInterpolation;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setModifierMap=function(value)
- {this._Properties=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getModifierMap=function()
- {return this._Properties;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getModifier_AM_AN_X=function(modifier,index)
- {if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE)
- {if(this._AM_Distance!==null&&this._AM_Distance.length>index)
- {return this._AM_Distance[index];}
- else
- return null;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH)
- {if(this._AN_Azimuth===null&&this._AN_Azimuth.length>index)
- {return this._AN_Azimuth[index];}
- else
- return null;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH)
- {if(this._X_Altitude===null&&this._X_Altitude.length>index)
- {return this._X_Altitude[index];}
- else
- return null;}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getModifier=function(modifier,index)
- {if(index===undefined)
- {index=0;}
- if(modifier==="AM"||modifier==="AN"||modifier==="XN")
- {return this.getModifier_AM_AN_X(modifier,index);}
- else if(this._Properties[modifier]!==undefined)
- {return this._Properties[modifier];}
- else
- return null;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getModifiers_AM_AN_X=function(modifier)
- {if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE)
- {return this._AM_Distance;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH)
- {return this._AN_Azimuth;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH)
- {return this._X_Altitude;}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setModifiers_AM_AN_X=function(modifier,values)
- {if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AM_DISTANCE)
- {this._AM_Distance=values;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.AN_AZIMUTH)
- {this._AN_Azimuth=values;}
- else if(modifier===armyc2.c2sd.renderer.utilities.ModifiersTG.X_ALTITUDE_DEPTH)
- {this._X_Altitude=values;}};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setFillColor=function(value)
- {this._FillColor=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getFillColor=function()
- {return this._FillColor;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setLineWidth=function(value)
- {this._LineWidth=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getLineWidth=function()
- {return this._LineWidth;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setLineColor=function(value)
- {this._LineColor=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getLineColor=function()
- {return this._LineColor;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setOutlineColor=function(value)
- {this._OutLineColor=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getOutlineColor=function()
- {return this._OutLineColor;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setTag=function(value)
- {this._Tag=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getTag=function()
- {return this._Tag;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setCoordinates=function(value)
- {this._Coordinates=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getCoordinates=function()
- {return this._Coordinates;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setModifierShapes=function(value)
- {this._ModifierShapes=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getModifierShapes=function()
- {return this._ModifierShapes;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.setSymbolShapes=function(value)
- {this._SymbolShapes=value;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getSymbolShapes=function()
- {return this._SymbolShapes;};armyc2.c2sd.renderer.utilities.MilStdSymbol.prototype.getSymbolID=function()
- {return this._symbolID;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.ModifiersTG={A_SYMBOL_ICON:"A",B_ECHELON:"B",C_QUANTITY:"C",H_ADDITIONAL_INFO_1:"H",H1_ADDITIONAL_INFO_2:"H1",H2_ADDITIONAL_INFO_3:"H2",N_HOSTILE:"N",Q_DIRECTION_OF_MOVEMENT:"Q",S_OFFSET_INDICATOR:"S",T_UNIQUE_DESIGNATION_1:"T",T1_UNIQUE_DESIGNATION_2:"T1",V_EQUIP_TYPE:"V",W_DTG_1:"W",W1_DTG_2:"W1",X_ALTITUDE_DEPTH:"X",Y_LOCATION:"Y",AM_DISTANCE:"AM",AN_AZIMUTH:"AN",LENGTH:"Length",WIDTH:"Width",RADIUS:"Radius",ANGLE:"Angle"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.PointConversion=function(pixelWidth,pixelHeight,geoTop,geoLeft,geoBottom,geoRight)
- {this._pixelWidth=0;this._PixelHeight=0;this._geoTop=0;this._geoLeft=0;this._geoBottom=0;this._geoRight=0;this._pixelMultiplierX=0;this._pixelMultiplierY=0;this.UpdateExtents(pixelWidth,pixelHeight,geoTop,geoLeft,geoBottom,geoRight);};armyc2.c2sd.renderer.utilities.PointConversion.prototype.UpdateExtents=function(pixelWidth,pixelHeight,geoTop,geoLeft,geoBottom,geoRight)
- {this._pixelWidth=Number(pixelWidth);this._PixelHeight=Number(pixelHeight);this._geoTop=Number(geoTop);this._geoLeft=Number(geoLeft);this._geoBottom=Number(geoBottom);this._geoRight=Number(geoRight);this._pixelMultiplierX=(this._geoRight-this._geoLeft)/(this._pixelWidth);this._pixelMultiplierY=(this._geoTop-this._geoBottom)/(this._PixelHeight);if(this._geoRight-this._geoLeft<-180){this._pixelMultiplierX=(this._geoRight-this._geoLeft+360)/(this._pixelWidth);}
- if(this._geoRight-this._geoLeft>180){this._pixelMultiplierX=(360-(this._geoRight-this._geoLeft))/(this._pixelWidth);}
- if(this._geoTop<this._geoBottom)
- this._pixelMultiplierY=-Math.abs(this._pixelMultiplierY);else
- this._pixelMultiplierY=Math.abs(this._pixelMultiplierY);if(this._geoRight<this._geoLeft)
- this._pixelMultiplierX=-Math.abs(this._pixelMultiplierX);else
- this._pixelMultiplierX=Math.abs(this._pixelMultiplierX);};armyc2.c2sd.renderer.utilities.PointConversion.prototype.PixelsToGeo=function(pixel)
- {var coords=new armyc2.c2sd.graphics2d.Point2D();var x=((pixel.getX()*this._pixelMultiplierX)+this._geoLeft);var y=(this._geoTop-(pixel.getY()*this._pixelMultiplierY));if(x>180)x-=360;if(x<-180)x+=360;coords.setLocation(x,y);return coords;};armyc2.c2sd.renderer.utilities.PointConversion.prototype.GeoToPixels=function(coord)
- {var pixel=new armyc2.c2sd.graphics2d.Point2D();var x=0;var y=0;var temp;temp=((coord.getX()-this._geoLeft)/this._pixelMultiplierX);x=Math.round(temp);temp=((this._geoTop-coord.getY())/this._pixelMultiplierY);y=Math.round(temp);pixel.setLocation(x,y);return pixel;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.PointConverter3D=function(controlLong,controlLat,scale)
- {this._controlLat=0,this._controlLong=0,this._scale=0,this._metersPerPixel=0;this._controlLat=Number(controlLat);this._controlLong=Number(controlLong);this._scale=Number(scale);this._metersPerPixel=armyc2.c2sd.renderer.utilities.GeoPixelConversion3D.metersPerPixel(scale);};armyc2.c2sd.renderer.utilities.PointConverter3D.prototype.PixelsToGeo=function(pixel)
- {var pt2dGeo=null;var y=armyc2.c2sd.renderer.utilities.GeoPixelConversion3D.y2lat(pixel.getY(),this._scale,this._controlLat,this._metersPerPixel);var x=armyc2.c2sd.renderer.utilities.GeoPixelConversion3D.x2long(pixel.getX(),this._scale,this._controlLong,y,this._metersPerPixel);pt2dGeo=new armyc2.c2sd.graphics2d.Point2D(x,y);return pt2dGeo;};armyc2.c2sd.renderer.utilities.PointConverter3D.prototype.GeoToPixels=function(coord)
- {var ptPixels=null;var y=armyc2.c2sd.renderer.utilities.GeoPixelConversion3D.lat2y(coord.getY(),this._scale,this._controlLat,this._metersPerPixel);var x=armyc2.c2sd.renderer.utilities.GeoPixelConversion3D.long2x(coord.getX(),this._scale,this._controlLong,coord.getY(),this._metersPerPixel);ptPixels=new armyc2.c2sd.graphics2d.Point2D(x,y);return ptPixels;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.RendererSettings=(function(){var _SymbologyStandard=0,_UseLineInterpolation=true,_TextBackgroundAutoColorThreshold=160,_TextOutlineWidth=1,_TextBackgroundMethod=2,_ColorLabelForeground=null,_ColorLabelBackground=null,_SymbolOutlineWidth=3,_CenterOnHQStaff=true,_ModifierFontName="Arial, sans-serif",_ModifierFontSize=10,_ModifierFontStyle="bold",_ModifierFont="bold 10pt Arial, sans-serif",_scaleEchelon=false,_DrawAffiliationModifierAsLabel=true,_SPFontSize=60,_UnitFontSize=50,_PixelSize=35;return{TextBackgroundMethod_NONE:0,TextBackgroundMethod_COLORFILL:1,TextBackgroundMethod_OUTLINE:2,TextBackgroundMethod_OUTLINE_QUICK:3,Symbology_2525Bch2_USAS_13_14:0,Symbology_2525C:1,setTextBackgroundMethod:function(textBackgroundMethod)
- {_TextBackgroundMethod=textBackgroundMethod;},getTextBackgroundMethod:function()
- {return _TextBackgroundMethod;},setSymbologyStandard:function(standard){_SymbologyStandard=standard;},getSymbologyStandard:function(){return _SymbologyStandard;},setUseLineInterpolation:function(value){_UseLineInterpolation=value;},getUseLineInterpolation:function(){return _UseLineInterpolation;},setCenterOnHQStaff:function(value){_CenterOnHQStaff=value;},getCenterOnHQStaff:function(){return _CenterOnHQStaff;},setTextOutlineWidth:function(width){_TextOutlineWidth=width;},getTextOutlineWidth:function(){return _TextOutlineWidth;},setDefaultPixelSize:function(size){_PixelSize=size;},getDefaultPixelSize:function(){return _PixelSize;},setLabelForegroundColor:function(value){_ColorLabelForeground=value;},getLabelForegroundColor:function(){return _ColorLabelForeground;},setLabelBackgroundColor:function(value){_ColorLabelBackground=value;},getLabelBackgroundColor:function(){return _ColorLabelBackground;},setTextBackgroundAutoColorThreshold:function(value){_TextBackgroundAutoColorThreshold=value;},getTextBackgroundAutoColorThreshold:function(){return _TextBackgroundAutoColorThreshold;},setSinglePointSymbolOutlineWidth:function(width){_SymbolOutlineWidth=width;if(width>0)
- _SymbolOutlineWidth=(width*2)+1;else
- _SymbolOutlineWidth=0;},getSinglePointSymbolOutlineWidth:function(){return _SymbolOutlineWidth;},setScaleEchelon:function(value){_scaleEchelon=value;},getScaleEchelon:function(){return _scaleEchelon;},setDrawAffiliationModifierAsLabel:function(value){_DrawAffiliationModifierAsLabel=value;},getDrawAffiliationModifierAsLabel:function(){return _DrawAffiliationModifierAsLabel;},setModifierFont:function(name,size,style){_ModifierFontName=name;_ModifierFontSize=size;if(style!=='bold'||style!=='normal')
- {_ModifierFontStyle=style;}
- else
- {_ModifierFontStyle='bold';}
- _ModifierFont=style+" "+size+"pt "+name;},getModifierFont:function(){return _ModifierFont;},getModifierFontName:function(){return _ModifierFontName;},getModifierFontSize:function(){return _ModifierFontSize;},getModifierFontStyle:function(){return _ModifierFontStyle;},getInstance:function(){return armyc2.c2sd.renderer.utilities.RendererSettings;}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SymbolUtilities={};armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID=function(symbolID){var basic=symbolID;if(symbolID&&symbolID.length===15)
- {var scheme=symbolID[0];if(scheme==='G')
- {basic=scheme+'*'+basic[2]+'*'+basic.substring(4,10)+"****X";}
- else if(scheme!=='W'&&scheme!=='B')
- {basic=scheme+'*'+basic[2]+'*'+basic.substring(4,10)+"*****";}}
- return basic;};armyc2.c2sd.renderer.utilities.SymbolUtilities.reconcileSymbolID=function(symbolID,isMultiPoint)
- {if(isMultiPoint!==true)
- isMultiPoint=false;var sb="";var codingScheme=symbolID.charAt(0);if(symbolID.indexOf("BS_")===0||symbolID.indexOf("BBS_")===0)
- {return symbolID;}
- if(symbolID.length<15)
- {while(symbolID.length<15)
- {symbolID+="-";}}
- if(symbolID.length>15)
- {symbolID=symbolID.substring(0,15);}
- if(symbolID!==null&&symbolID.length===15)
- {if(codingScheme==='S'||codingScheme==='I'||codingScheme==='O'||codingScheme==='E')
- {sb+=(codingScheme);if(this.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));if(this.hasValidBattleDimension(symbolID)===false)
- {sb="S"+sb.substring(1);sb+=('Z');}
- else
- sb+=(symbolID.charAt(2));if(this.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));sb+=("------");sb+=(symbolID.substring(10,15));}
- else if(codingScheme==='G')
- {sb+=(codingScheme);if(this.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));sb+=('G');if(this.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));if(isMultiPoint)
- sb+=("GAG---");else
- sb+=("GPP---");sb+=(symbolID.substring(10,15));}
- else if(codingScheme==='W')
- {return"SUZP-----------";}
- else
- {sb+=('S');if(this.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));if(this.hasValidBattleDimension(symbolID)===false)
- {sb+=('Z');}
- else
- sb+=(symbolID.charAt(2));if(this.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));sb+=("------");sb+=(symbolID.substring(10,15));}}
- else
- {return"SUZP-----------";}
- return sb;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasValidStatus=function(SymbolID){if(SymbolID!==null&&SymbolID.length>=10)
- {var status=SymbolID.charAt(3),codingScheme=SymbolID.charAt(0);if(codingScheme==='S'||codingScheme==='I'||codingScheme==='O'||codingScheme==='E')
- {if(status==='A'||status==='P'||status==='C'||status==='D'||status==='X'||status==='F')
- {return true;}
- else
- return false;}
- else if(codingScheme==='G')
- {if(status==='A'||status==='S'||status==='P'||status==='K')
- {return true;}
- else
- return false;}
- else if(codingScheme==='W')
- {return true;}
- return false;}
- else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasValidAffiliation=function(SymbolID){if(SymbolID!==null&&SymbolID.length>=10)
- {var affiliation=SymbolID.charAt(1);if(affiliation==='P'||affiliation==='U'||affiliation==='A'||affiliation==='F'||affiliation==='N'||affiliation==='S'||affiliation==='H'||affiliation==='G'||affiliation==='W'||affiliation==='M'||affiliation==='D'||affiliation==='L'||affiliation==='J'||affiliation==='K')
- return true;else
- return false;}
- else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasValidCodingScheme=function(symbolID){if(symbolID!==null&&symbolID.length>0)
- {var codingScheme=symbolID.charAt(0);if(codingScheme==='S'||codingScheme==='G'||codingScheme==='W'||codingScheme==='I'||codingScheme==='O'||codingScheme==='E')
- {return true;}
- else
- {return false;}}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasValidBattleDimension=function(SymbolID){if(SymbolID!==null&&SymbolID.length>=10)
- {var codingScheme=SymbolID.charAt(0),bd=SymbolID.charAt(2);if(codingScheme==='S')
- {if(bd==='P'||bd==='A'||bd==='G'||bd==='S'||bd==='U'||bd==='F'||bd==='Z')
- return true;else
- return false;}
- else if(codingScheme==='O')
- {if(bd==='V'||bd==='L'||bd==='O'||bd==='I'||bd==='P'||bd==='G'||bd==='R')
- return true;else
- return false;}
- else if(codingScheme==='E')
- {if(bd==='I'||bd==='N'||bd==='O'||bd==='F')
- return true;else
- return false;}
- else if(codingScheme==='G')
- {if(bd==='T'||bd==='G'||bd==='M'||bd==='F'||bd==='S'||bd==='O')
- {return true;}
- else
- return false;}
- else if(codingScheme==='W')
- {return true;}
- else if(codingScheme==='I')
- {if(bd==='P'||bd==='A'||bd==='G'||bd==='S'||bd==='U'||bd==='Z')
- return true;else
- return false;}
- else
- return false;}
- else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isLetter=function(str)
- {var returnVal=true,len=str.length,code=0;for(var i=0;i<len;i++)
- {code=str.charCodeAt(i);if(!(code>=65&&code<=90)||(code>=97&&code<=122))
- {returnVal=false;break;}}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasValidCountryCode=function(symbolID)
- {if(this.isLetter(symbolID.substring(12,14)))
- return true;else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getDateLabel=function(date){var strDate=null,day,hour,min,sec,zulu,month,strMonth,year,strYear,months;if(date instanceof Date)
- {day=date.getDate();hour=date.getHours();min=date.getMinutes();sec=date.getSeconds();zulu=date.getTimezoneOffset();if(zulu!==0){zulu=zulu/-60;}
- month=date.getMonth();year=date.getFullYear();months=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];strMonth=months[month];strYear=year.toString();strYear=strYear.substr(2,2);strDate=this.formatNumberLength(day,2)+this.formatNumberLength(hour,2)+this.formatNumberLength(min,2)+this.formatNumberLength(sec,2)+this.getZuluCharacter(zulu)+strMonth+strYear;}
- return strDate;};armyc2.c2sd.renderer.utilities.SymbolUtilities.formatNumberLength=function(number,length){var r="";r=r+number;while(r.length<length){r="0"+r;}
- return r;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getZuluCharacter=function(hour){if(hour===0){return"Z";}else if(hour===-1){return"N";}else if(hour===-2){return"O";}else if(hour===-3){return"P";}else if(hour===-4){return"Q";}else if(hour===-5){return"R";}else if(hour===-6){return"S";}else if(hour===-7){return"T";}else if(hour===-8){return"U";}else if(hour===-9){return"V";}else if(hour===-10){return"W";}else if(hour===-11){return"X";}else if(hour===-12){return"Y";}else if(hour===1){return"A";}else if(hour===2){return"B";}else if(hour===3){return"C";}else if(hour===4){return"D";}else if(hour===5){return"E";}else if(hour===6){return"F";}else if(hour===7){return"G";}else if(hour===8){return"H";}else if(hour===9){return"I";}else if(hour===10){return"K";}else if(hour===11){return"L";}else if(hour===12){return"M";}else{return"-";}};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasModifier=function(symbolID,modifier,symStd){var returnVal=false;if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- if(this.isTacticalGraphic(symbolID)===true)
- {returnVal=this.canSymbolHaveModifier(symbolID,modifier,symStd);}
- else
- {returnVal=this.canUnitHaveModifier(symbolID,modifier);}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.canUnitHaveModifier=function(symbolID,unitModifier){var returnVal=false;var ModifiersUnits=armyc2.c2sd.renderer.utilities.ModifiersUnits;if(unitModifier===(ModifiersUnits.B_ECHELON))
- {return(this.isUnit(symbolID)||this.isSTBOPS(symbolID));}
- else if(unitModifier===(ModifiersUnits.C_QUANTITY))
- {return(this.isEquipment(symbolID)||this.isEMSEquipment(symbolID)||this.isEMSIncident(symbolID));}
- else if(unitModifier===(ModifiersUnits.D_TASK_FORCE_INDICATOR))
- {return(this.isUnit(symbolID)||this.isSTBOPS(symbolID));}
- else if(unitModifier===(ModifiersUnits.F_REINFORCED_REDUCED))
- {return(this.isUnit(symbolID)||this.isSTBOPS(symbolID));}
- else if(unitModifier===(ModifiersUnits.G_STAFF_COMMENTS))
- {return(this.isEMS(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.H_ADDITIONAL_INFO_1))
- {return true;}
- else if(unitModifier===(ModifiersUnits.J_EVALUATION_RATING))
- {return true;}
- else if(unitModifier===(ModifiersUnits.K_COMBAT_EFFECTIVENESS))
- {return(this.isUnit(symbolID)||this.isSTBOPS(symbolID)||(this.hasInstallationModifier(symbolID)&&this.isEMS(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.L_SIGNATURE_EQUIP))
- {return(this.isEquipment(symbolID)||this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.M_HIGHER_FORMATION))
- {return(this.isUnit(symbolID)||this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.N_HOSTILE))
- {return(this.isEquipment(symbolID));}
- else if(unitModifier===(ModifiersUnits.P_IFF_SIF))
- {return(this.isUnit(symbolID)||this.isEquipment(symbolID)||(this.hasInstallationModifier(symbolID)&&this.isEMS(symbolID)===false)||this.isSTBOPS(symbolID));}
- else if(unitModifier===(ModifiersUnits.Q_DIRECTION_OF_MOVEMENT))
- {return((this.hasInstallationModifier(symbolID)===false)&&(this.isSIGINT(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.R_MOBILITY_INDICATOR))
- {return(this.isEquipment(symbolID)||this.isEMSEquipment(symbolID));}
- else if(unitModifier===(ModifiersUnits.R2_SIGNIT_MOBILITY_INDICATOR))
- {return(this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.S_HQ_STAFF_OR_OFFSET_INDICATOR))
- {return(this.isSIGINT(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.T_UNIQUE_DESIGNATION_1))
- {return true;}
- else if(unitModifier===(ModifiersUnits.V_EQUIP_TYPE))
- {return(this.isEquipment(symbolID)||this.isSIGINT(symbolID)||this.isEMSEquipment(symbolID));}
- else if(unitModifier===(ModifiersUnits.W_DTG_1))
- {return true;}
- else if(unitModifier===(ModifiersUnits.X_ALTITUDE_DEPTH))
- {return(this.isSIGINT(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.Y_LOCATION))
- {return true;}
- else if(unitModifier===(ModifiersUnits.Z_SPEED))
- {return((this.hasInstallationModifier(symbolID)===false)&&(this.isSIGINT(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.AA_SPECIAL_C2_HQ))
- {return(this.isUnit(symbolID)||this.isSTBOPS(symbolID));}
- else if(unitModifier===(ModifiersUnits.AB_FEINT_DUMMY_INDICATOR))
- {return((this.isSIGINT(symbolID)===false)&&(this.isEMS(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.AC_INSTALLATION))
- {return(this.isSIGINT(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.AD_PLATFORM_TYPE))
- {return(this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.AE_EQUIPMENT_TEARDOWN_TIME))
- {return(this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.AF_COMMON_IDENTIFIER))
- {return(this.isSIGINT(symbolID));}
- else if(unitModifier===(ModifiersUnits.AG_AUX_EQUIP_INDICATOR))
- {return(this.isEquipment(symbolID));}
- else if(unitModifier===(ModifiersUnits.AH_AREA_OF_UNCERTAINTY)||unitModifier===(ModifiersUnits.AI_DEAD_RECKONING_TRAILER)||unitModifier===(ModifiersUnits.AJ_SPEED_LEADER))
- {return((this.isSIGINT(symbolID)===false)&&(this.hasInstallationModifier(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.AK_PAIRING_LINE))
- {return((this.isSIGINT(symbolID)===false)&&(this.isEMS(symbolID)===false)&&(this.hasInstallationModifier(symbolID)===false));}
- else if(unitModifier===(ModifiersUnits.AL_OPERATIONAL_CONDITION))
- {return(this.isUnit(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.AO_ENGAGEMENT_BAR))
- {return((this.isEquipment(symbolID)||this.isUnit(symbolID)||this.hasInstallationModifier(symbolID))&&this.isEMS(symbolID)===false);}
- else if(unitModifier===(ModifiersUnits.A_SYMBOL_ICON))
- {return true;}
- else if(unitModifier===(ModifiersUnits.E_FRAME_SHAPE_MODIFIER))
- {return true;}
- else
- return false;return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.canSymbolHaveModifier=function(symbolID,tgModifier,symStd){if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var basic=null,sd=null,returnVal=false;var ModifiersTG=armyc2.c2sd.renderer.utilities.ModifiersTG;var SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable;basic=this.getBasicSymbolID(symbolID);sd=SymbolDefTable.getSymbolDef(basic,symStd);if(sd!==null)
- {var dc=sd.drawCategory;if(tgModifier===(ModifiersTG.AM_DISTANCE))
- {switch(dc)
- {case SymbolDefTable.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:returnVal=true;break;case SymbolDefTable.DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:returnVal=true;break;default:returnVal=false;}}
- else if(tgModifier===(ModifiersTG.AN_AZIMUTH))
- {switch(dc)
- {case SymbolDefTable.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:returnVal=true;break;default:returnVal=false;}}
- else
- {if(sd.modifiers.indexOf(tgModifier+".")>-1)
- returnVal=true;}}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getLineColorOfAffiliation=function(symbolID){var retColor=null,basicSymbolID=this.getBasicSymbolID(symbolID);var AffiliationColors=armyc2.c2sd.renderer.utilities.AffiliationColors;if((symbolID===null)||(symbolID===("")))
- {return retColor;}
- if(this.isTacticalGraphic(symbolID))
- {if(this.isWeather(symbolID))
- {retColor=this.getLineColorOfWeather(symbolID);}
- else if(this.isObstacle(symbolID))
- {retColor=armyc2.c2sd.renderer.utilities.Color.GREEN;}
- else if((this.isNBC(symbolID))&&(basicSymbolID===("G*M*NR----****X")||basicSymbolID===("G*M*NC----****X")||basicSymbolID===("G*M*NB----****X")))
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- else
- {var switchChar=symbolID.charAt(1);if(switchChar===("F")||switchChar===("A")||switchChar===("D")||switchChar===("M"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- else if(switchChar===("H")||switchChar===("S")||switchChar===("J")||switchChar===("K"))
- {if(this.getBasicSymbolID(symbolID)===("G*G*GLC---****X"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- else
- {retColor=armyc2.c2sd.renderer.utilities.Color.RED;}}
- else if(switchChar===("N")||switchChar===("L"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.GREEN;}
- else if(switchChar===("U")||switchChar===("P")||switchChar===("O")||switchChar===("G")||switchChar===("W"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.YELLOW;}
- else
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}}}
- else
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- return retColor;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getFillColorOfAffiliation=function(symbolID){var retColor=null,basicSymbolID=this.getBasicSymbolID(symbolID);var AffiliationColors=armyc2.c2sd.renderer.utilities.AffiliationColors;var switchChar;if((symbolID===null)||(symbolID===("")))
- {return retColor;}
- if(basicSymbolID===("G*M*NZ----****X")||basicSymbolID===("G*M*NEB---****X")||basicSymbolID===("G*M*NEC---****X"))
- {retColor=AffiliationColors.UnknownUnitFillColor;}
- else if(this.isTacticalGraphic(symbolID)&&!this.isTGSPWithFill(symbolID))
- {if(basicSymbolID===("G*M*NZ----****X")||basicSymbolID===("G*M*NEB---****X")||basicSymbolID===("G*M*NEC---****X"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.yellow;}
- else
- {switchChar=symbolID.charAt(1);if(switchChar===("F")||switchChar===("A")||switchChar===("D")||switchChar===("M"))
- {retColor=AffiliationColors.FriendlyGraphicFillColor;}
- else if(switchChar===("H")||switchChar===("S")||switchChar===("J")||switchChar===("K"))
- {retColor=AffiliationColors.HostileGraphicFillColor;}
- else if(switchChar===("N")||switchChar===("L"))
- {retColor=AffiliationColors.NeutralGraphicFillColor;}
- else if(switchChar===("U")||switchChar===("P")||switchChar===("O")||switchChar===("G")||switchChar===("W"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#FFFACD");}
- else
- {retColor=null;}}}
- else
- {switchChar=symbolID.charAt(1);if(switchChar===("F")||switchChar===("A")||switchChar===("D")||switchChar===("M"))
- {retColor=AffiliationColors.FriendlyUnitFillColor;}
- else if(switchChar===("H")||switchChar===("S")||switchChar===("J")||switchChar===("K"))
- {retColor=AffiliationColors.HostileUnitFillColor;}
- else if(switchChar===("N")||switchChar===("L"))
- {retColor=AffiliationColors.NeutralUnitFillColor;}
- else if(switchChar===("U")||switchChar===("P")||switchChar===("O")||switchChar===("G")||switchChar===("W"))
- {retColor=AffiliationColors.UnknownUnitFillColor;}
- else
- {retColor=AffiliationColors.UnknownUnitFillColor;}}
- return retColor;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getLineColorOfWeather=function(symbolID){var retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;if(symbolID===("WAS-WSGRL-P----")||symbolID===("WAS-WSGRMHP----")||symbolID===("WAS-PL----P----")||symbolID===("WAS-PC----P----")||symbolID===("WAS-WSIC--P----")||symbolID===("WAS-WSPLL-P----")||symbolID===("WAS-WSPLM-P----")||symbolID===("WAS-WSPLH-P----")||symbolID===("WAS-WST-NPP----")||symbolID===("WAS-WSTMR-P----")||symbolID===("WAS-WSTHR-P----")||symbolID===("WAS-WSTMH-P----")||symbolID===("WAS-WSTHH-P----")||symbolID===("WAS-WST-FCP----")||symbolID===("WAS-WST-SQP----")||symbolID===("WAS-WST-LGP----")||symbolID===("WAS-WSFGFVP----")||symbolID===("WAS-WSFGFOP----")||symbolID===("WAS-WSTSD-P----")||symbolID===("WAS-WSTSS-P----")||symbolID===("WAS-WSTSH-P----")||symbolID===("WAS-WSRFL-P----")||symbolID===("WAS-WSRFMHP----")||symbolID===("WAS-WSDFL-P----")||symbolID===("WAS-WSDFMHP----")||symbolID===("WOS-HHDMDBP----")||symbolID===("WOS-HHDMDFP----")||symbolID.substring(0,7)===("WA-DPFW")||symbolID===("WA-DBAIF----A--")||symbolID===("WA-DBAFP----A--")||symbolID===("WA-DBAT-----A--")||symbolID===("WA-DIPIS---L---")||symbolID===("WA-DIPTH---L---")||symbolID===("WA-DWJ-----L---"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.RED;}
- else if(symbolID===("WAS-PH----P----")||symbolID===("WAS-PA----P----")||symbolID===("WA-DBAMV----A--")||symbolID===("WA-DBATB----A--")||symbolID.substring(0,5)===("WAS-T")||symbolID.substring(0,7)===("WA-DPFC"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLUE;}
- else if(symbolID===("WAS-WSFGPSP----")||symbolID===("WAS-WSFGCSP----")||symbolID===("WAS-WSFGP-P----")||symbolID===("WAS-WSFGSVP----")||symbolID===("WAS-WSFGSOP----")||symbolID===("WA-DBAFG----A--")||symbolID===("WAS-WSBR--P----"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.YELLOW;}
- else if(symbolID===("WAS-WSFU--P----")||symbolID===("WAS-WSHZ--P----")||symbolID===("WAS-WSDSLMP----")||symbolID===("WAS-WSDSS-P----")||symbolID===("WAS-WSDD--P----")||symbolID===("WA-DBAD-----A--")||symbolID===("WAS-WSBD--P----"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#A52A2A");}
- else if(symbolID===("WA-DBALPNC--A--")||symbolID===("WA-DBALPC---A--")||symbolID===("WA-DIPID---L---")||symbolID===("WO-DHCF----L---")||symbolID===("WO-DHCF-----A--")||symbolID===("WAS-WSR-LIP----")||symbolID===("WAS-WSR-LCP----")||symbolID===("WAS-WSR-MIP----")||symbolID===("WAS-WSR-MCP----")||symbolID===("WAS-WSR-HIP----")||symbolID===("WAS-WSR-HCP----")||symbolID===("WAS-WSRSL-P----")||symbolID===("WAS-WSRSMHP----")||symbolID===("WAS-WSRST-P----")||symbolID===("WAS-WSD-LIP----")||symbolID===("WAS-WSD-LCP----")||symbolID===("WAS-WSD-MIP----")||symbolID===("WAS-WSD-MCP----")||symbolID===("WAS-WSD-HIP----")||symbolID===("WAS-WSD-HCP----")||symbolID===("WAS-WSM-L-P----")||symbolID===("WAS-WSM-MHP----")||symbolID===("WAS-WSMSL-P----")||symbolID===("WAS-WSMSMHP----")||symbolID===("WAS-WSS-LIP----")||symbolID===("WAS-WSS-LCP----")||symbolID===("WAS-WSS-MIP----")||symbolID===("WAS-WSS-MCP----")||symbolID===("WAS-WSS-HIP----")||symbolID===("WAS-WSS-HCP----")||symbolID===("WAS-WSSBLMP----")||symbolID===("WAS-WSSBH-P----")||symbolID===("WAS-WSSG--P----")||symbolID===("WAS-WSSSL-P----")||symbolID===("WAS-WSSSMHP----")||symbolID===("WAS-WSUKP-P----"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#00FF00");}
- else if(symbolID===("WA-DBAI-----A--")||symbolID.indexOf("WAS-IC")===0||symbolID.indexOf("WAS-IR")===0||symbolID.indexOf("WAS-IM")===0)
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#806010");}
- else if(symbolID===("WOS-HDS---P----")||symbolID===("WOS-HHDF--P----")||symbolID===("WO-DHHDF----A--")||symbolID===("WOS-HPFS--P----")||symbolID===("WOS-HPFS---L---")||symbolID===("WOS-HPFF----A--")||symbolID===("WO-DHDDL---L---")||symbolID===("WO-DHDDC---L---")||symbolID===("WO-DHCC----L---")||symbolID===("WO-DHPBP---L---")||symbolID===("WO-DHPMO---L---")||symbolID===("WO-DHPSPA--L---")||symbolID===("WO-DHPSPB--L---")||symbolID===("WO-DHPSPS--L---")||symbolID===("WO-DHHDK--P----")||symbolID===("WO-DHHDK----A--")||symbolID===("WO-DHHDB---L---")||symbolID===("WO-DTCCCFE-L---")||symbolID===("WO-DTCCCFF-L---")||symbolID===("WOS-TCCTD-P----")||symbolID===("WO-DHCW-----A--"))
- retColor=armyc2.c2sd.renderer.utilities.Color.GRAY;else if(symbolID===("WAS-WSVE--P----")||symbolID===("WAS-WSVA--P----")||symbolID===("WAS-WST-LVP----")||symbolID===("WAS-WSF-LVP----"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- else if(symbolID===("WOS-HPBA--P----")||symbolID===("WOS-HPBA---L---")||symbolID===("WOS-HPBA----A--")||symbolID===("WOS-HPCP--P----")||symbolID===("WOS-HPFH--P----")||symbolID===("WOS-HPM-FC-L---")||symbolID===("WOS-HABM--P----")||symbolID===("WOS-HAL---P----")||symbolID===("WA-DIPIT---L---")||symbolID===("WOS-TCCTG-P----"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#FF00FF");}
- else if(symbolID.substring(0,7)===("WA-DPFO"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#E29FFF");}
- else if(symbolID===("WA-DPXITCZ-L---")||symbolID===("WA-DPXCV---L---"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#FF7F00");}
- else if(symbolID.indexOf("WAS-IC")===0||symbolID.indexOf("WAS-IR")===0||symbolID.indexOf("WAS-IM")===0)
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#806010");}
- else if(symbolID===("WO-DHCI-----A--")||symbolID===("WO-DHCB-----A--")||symbolID===("WO-DHPMO---L---")||symbolID===("WO-DHCI-----A--"))
- {retColor=armyc2.c2sd.renderer.utilities.Color.getColorFromHexString("#D2B06A");}
- else
- {retColor=armyc2.c2sd.renderer.utilities.Color.BLACK;}
- return retColor;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getFillColorOfWeather=function(symbolID){if(symbolID===("WOS-HPM-R-P----"))
- return new armyc2.c2sd.renderer.utilities.Color(148,48,0);else if(symbolID===("WOS-HPD---P----"))
- return new armyc2.c2sd.renderer.utilities.Color(148,48,0);else if(symbolID===("WOS-HABB--P----"))
- return new armyc2.c2sd.renderer.utilities.Color(255,0,255);else if(symbolID===("WOS-HHRS--P----"))
- return new armyc2.c2sd.renderer.utilities.Color(0,204,255);else if(symbolID===("WOS-HHDS--P----"))
- return new armyc2.c2sd.renderer.utilities.Color(0,204,255);else if(symbolID===("WOS-HHDWB-P----"))
- return new armyc2.c2sd.renderer.utilities.Color(0,204,255);else if(symbolID===("WOS-TCCTG-P----"))
- return new armyc2.c2sd.renderer.utilities.Color(210,176,106);else return null;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getColorFromHexString=function(hexValue)
- {var hexOriginal=new String(hexValue);var hexAlphabet="0123456789ABCDEF";if(hexValue.charAt(0)==='#')
- hexValue=hexValue.substring(1);if(hexValue.substring(0,2)===("0x")||hexValue.substring(0,2)===("0X"))
- hexValue=hexValue.substring(2);hexValue=hexValue.toUpperCase();var count=hexValue.length,value=null,k=0,int1=0,int2=0;if(count===8||count===6)
- {value=new Array();for(var i=0;i<count;i+=2)
- {int1=hexAlphabet.indexOf(hexValue.charAt(i));int2=hexAlphabet.indexOf(hexValue.charAt(i+1));value[k]=(int1*16)+int2;k++;}
- if(count===8)
- {return new armyc2.c2sd.renderer.utilities.Color(value[1],value[2],value[3],value[0]);}
- else if(count===6)
- {return new armyc2.c2sd.renderer.utilities.Color(value[0],value[1],value[2]);}}
- else
- {}
- return null;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTacticalGraphic=function(strSymbolID){if(strSymbolID&&((strSymbolID[0]===('G'))||(strSymbolID[0]===('W'))||this.isEMSNaturalEvent(strSymbolID)))
- {return true;}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isWarfighting=function(strSymbolID){if(!strSymbolID)
- {return false;}
- var scheme=strSymbolID[0];if((scheme===('O'))||(scheme===('S'))||(scheme===('I'))||(scheme===('E')&&strSymbolID[2]!=='N'))
- {return true;}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isWeather=function(strSymbolID){if(strSymbolID[0]===('W'))
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.isNumber=function(text){var re=new RegExp("((-|\\+)?[0-9]+(\\.[0-9]+)?)+");return(re.test(text));};armyc2.c2sd.renderer.utilities.SymbolUtilities.isMCSSpecificTacticalGraphic=function(sd){if(sd!==undefined&&sd!==null&&sd.hierarchy!==undefined&&sd.basicSymbolID!==undefined)
- {var hierarchy=sd.hierarchy;var basicSymbolID=sd.symbolID;if(hierarchy.substring(0,5)===("2.X.7")||hierarchy.substring(0,9)===("2.X.5.2.3")||basicSymbolID.substring(0,4)===("G*R*")||hierarchy.substring(0,4)===("21.X")||basicSymbolID.substring(0,4)("G*E*"))
- {return true;}
- else
- {return false;}}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isMCSSpecificForceElement=function(ud){if(isSASO(ud))
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.is3dGraphic=function(symbolID){var symbolId=symbolID.substring(4,6);if(symbolId===("ACAI--")||symbolId===("ACAR--")||symbolId===("ACAC--")||symbolId===("AXC---")||symbolId===("AXS---")||symbolId===("AKPC--")||symbolId===("AKPI--")||symbolId===("AKPR--"))
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.is3dAirspace=function(symbolID){if(symbolID===("CYLINDER-------")||symbolID===("ORBIT----------")||symbolID===("ROUTE----------")||symbolID===("POLYGON--------")||symbolID===("RADARC---------")||symbolID===("POLYARC--------")||symbolID===("CAKE-----------")||symbolID===("TRACK----------")||symbolID===("CURTAIN--------"))
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSASO=function(sd){var hierarchy=sd.hierarchy;if(hierarchy.length>5&&(hierarchy.indexOf("5.X.10")===0||hierarchy.indexOf("5.X.11")===0||hierarchy.indexOf("5.X.12")===0||hierarchy.indexOf("5.X.13")===0||hierarchy.indexOf("5.X.14")===0))
- {return true;}
- else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isMOOTW=function(strSymbolID){if(strSymbolID.charAt(0)===('O'))
- {return true;}
- else
- {return false;}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSTBOPS=function(strSymbolID){if(strSymbolID.substring(0,1)===('O'))
- {return true;}
- else
- {return false;}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEvent=function(strSymbolID)
- {var arr=null;var category=strSymbolID.charAt(2);var strBasicSymbolID=this.getBasicSymbolID(strSymbolID);if(this.isMOOTW(strSymbolID)||(this.isEMS(strSymbolID)&&(category==='I'||category==='N'||category==='O')))
- return true;else
- {arr=new Array("S*G*EXI---*****","S*G*EXI---MO***");var arrLength=arr.length;for(var i=0;i<arrLength;i++)
- {if(arr[i]===(strBasicSymbolID))
- {return true;}}}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isHQ=function(strSymbolID){var hq=strSymbolID.charAt(10);var blRetVal=(hq===('A')||hq===('B')||hq===('C')||hq===('D'));return blRetVal;return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTaskForce=function(strSymbolID){var tf=strSymbolID.charAt(10);var blRetVal=(tf===('B')||tf===('D')||tf===('E')||tf===('G'));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isFeintDummy=function(strSymbolID){var fd=strSymbolID.charAt(10);var blRetVal=(fd===('C')||fd===('D')||fd===('F')||fd===('G'));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isMobility=function(strSymbolID){var mobility=strSymbolID.substring(10,12);if(mobility===("MO")||mobility===("MP")||mobility===("MQ")||mobility===("MR")||mobility===("MS")||mobility===("MT")||mobility===("MU")||mobility===("MV")||mobility===("MW")||mobility===("MX")||mobility===("MY")||mobility===("NS")||mobility===("NL"))
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.isObstacle=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('G'))&&((strSymbolID.charAt(2)===('M'))&&(strSymbolID.charAt(4)===('O'))));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isNBC=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('G'))&&((strSymbolID.charAt(2)===('M'))&&(strSymbolID.charAt(4)===('N'))));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isDeconPoint=function(strSymbolID){var blRetVal=((this.isNBC(strSymbolID))&&(strSymbolID.substring(4,6)===("ND")));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isCheckPoint=function(strSymbolID){var basicID=this.getBasicSymbolID(strSymbolID);var blRetVal=false;if(basicID===("G*G*GPPE--****X")||basicID===("G*G*GPPK--****X")||basicID===("G*G*GPPS--****X"))
- {blRetVal=true;}
- return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getEchelonText=function(echelon){var text=null;if(echelon===("A"))
- {text="0";}
- else if(echelon===("B"))
- {text=String.fromCharCode(8226);}
- else if(echelon===("C"))
- {text=String.fromCharCode(8226,8226);}
- else if(echelon===("D"))
- {text=String.fromCharCode(8226,8226,8226);}
- else if(echelon===("E"))
- {text="|";}
- else if(echelon===("F"))
- {text="||";}
- else if(echelon===("G"))
- {text="|||";}
- else if(echelon===("H"))
- {text="X";}
- else if(echelon===("I"))
- {text="XX";}
- else if(echelon===("J"))
- {text="XXX";}
- else if(echelon===("K"))
- {text="XXXX";}
- else if(echelon===("L"))
- {text="XXXXX";}
- else if(echelon===("M"))
- {text="XXXXXX";}
- else if(echelon===("N"))
- {text="++";}
- return text;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isUnit=function(strSymbolID){var blRetVal=((strSymbolID[0]===('S'))&&(strSymbolID[2]===('G'))&&(strSymbolID[4]===('U')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTGWithControlPoints=function(strSymbolID,symStd){if(symStd!==undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var temp=this.getBasicSymbolID(strSymbolID);var sd=armyc2.c2sd.renderer.utilities.SymbolDefTable.GetSymbolDef(temp,symStd);if(sd!==null&&sd.getDrawCategory()===armyc2.c2sd.renderer.utilities.SymbolDefTable.DRAW_CATEGORY_ROUTE)
- {return true;}
- else
- {return false;}};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTGSPWithSpecialModifierLayout=function(strSymbolID){var temp=this.getBasicSymbolID(strSymbolID);var blRetVal=(temp===("G*G*GPH---****X"))||(temp===("G*G*GPPC--****X"))||(temp===("G*G*GPPD--****X"))||(temp===("G*G*GPPW--****X"))||(temp===("G*G*APP---****X"))||(temp===("G*G*APC---****X"))||(temp===("G*G*DPT---****X"))||(temp===("G*F*PTS---****X"))||(temp===("G*F*PTN---****X"))||(temp===("G*F*PCF---****X"))||(temp===("G*M*NZ----****X"))||(temp===("G*M*NEB---****X"))||(temp===("G*M*NEC---****X"))||(temp===("G*G*GPRI--****X"))||(temp===("G*M*OFS---****X"));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTGSPWithIntegralText=function(strSymbolID){var temp=this.getBasicSymbolID(strSymbolID);var blRetVal=(temp===("G*G*GPRD--****X"))||(temp===("G*G*APU---****X"))||(temp===("G*M*NZ----****X"))||(temp===("G*M*NF----****X"))||(temp===("G*M*NEB---****X"))||(temp===("G*M*NEC---****X"));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isTGSPWithFill=function(strSymbolID){var temp=this.getBasicSymbolID(strSymbolID),blRetVal=this.isDeconPoint(temp)||temp.substring(0,5)===("G*S*P")||(temp===("G*G*GPP---****X"))||(temp===("G*G*GPPK--****X"))||(temp===("G*G*GPPL--****X"))||(temp===("G*G*GPPP--****X"))||(temp===("G*G*GPPR--****X"))||(temp===("G*G*GPPE--****X"))||(temp===("G*G*GPPS--****X"))||(temp===("G*G*GPPA--****X"))||(temp===("G*G*GPPN--****X"))||(temp===("G*G*APD---****X"))||(temp===("G*G*OPP---****X"))||(temp===("G*F*PCS---****X"))||(temp===("G*F*PCB---****X"))||(temp===("G*F*PCR---****X"))||(temp===("G*F*PCH---****X"))||(temp===("G*F*PCL---****X"))||(temp===("G*M*BCP---****X"))||(temp===("G*O*ES----****X"))||(temp.substring(0,9)===("G*G*GPPD-"))||(temp===("G*G*GPPO--****X"))||(temp===("G*G*APP---****X"))||(temp===("G*G*APC---****X"))||(temp===("G*G*APU---****X"))||(temp.substring(0,8)===("G*G*GPUY"))||((temp.substring(0,7)===("G*G*GPR")&&temp.charAt(7)!=='I'))||(temp===("G*M*NEB---****X"))||(temp===("G*M*NEC---****X"))||(temp===("G*M*NF----****X"))||(temp===("G*M*NZ----****X"));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasDefaultFill=function(strSymbolID){if(this.isTacticalGraphic(strSymbolID))
- {var temp=this.getBasicSymbolID(strSymbolID);if((temp===("G*M*NEB---****X"))||(temp===("G*M*NEC---****X"))||(temp===("G*M*NZ----****X")))
- {return true;}
- else
- return false;}
- else
- return true;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getTGFillSymbolCode=function(strSymbolID){var temp=this.getBasicSymbolID(strSymbolID);if(temp===("G*M*NEB---****X"))
- return"NBCBIOFILL****X";if(temp===("G*M*NEC---****X"))
- return"NBCCMLFILL****X";if(temp===("G*M*NZ----****X")||temp===("G*M*NF----****X"))
- return"NBCNUCFILL****X";if(temp.substring(0,8)===("G*G*GPUY"))
- return"SONOBYFILL****X";if((temp===("G*G*GPPO--****X"))||(temp===("G*G*APP---****X"))||(temp===("G*G*APC---****X"))||(temp===("G*G*APU---****X")))
- {return"CPOINTFILL****X";}
- if(this.isDeconPoint(temp)||temp.substring(0,5)===("G*S*P")||(temp===("G*G*GPP---****X"))||(temp===("G*G*GPPK--****X"))||(temp===("G*G*GPPL--****X"))||(temp===("G*G*GPPP--****X"))||(temp===("G*G*GPPR--****X"))||(temp===("G*G*GPPE--****X"))||(temp===("G*G*GPPS--****X"))||(temp===("G*G*GPPA--****X"))||(temp===("G*G*APD---****X"))||(temp===("G*G*OPP---****X"))||(temp===("G*F*PCS---****X"))||(temp===("G*F*PCB---****X"))||(temp===("G*F*PCR---****X"))||(temp===("G*F*PCH---****X"))||(temp===("G*F*PCL---****X"))||(temp===("G*G*GPPN--****X"))||(temp===("G*O*ES----****X"))||(temp===("G*M*BCP---****X")))
- {return"CHKPNTFILL****X";}
- if(temp.substring(0,7)===("G*G*GPR")&&temp.charAt(7)!=='I')
- {return"REFPNTFILL****X";}
- if(temp.substring(0,8)===("G*G*GPPD"))
- {return"DECPNTFILL****X";}
- return null;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isWeatherSPWithFill=function(symbolID){if(symbolID===("WOS-HPM-R-P----")||symbolID===("WOS-HPD---P----")||symbolID===("WOS-HABB--P----")||symbolID===("WOS-HHRS--P----")||symbolID===("WOS-HHDS--P----")||symbolID===("WOS-HHDWB-P----")||symbolID===("WOS-TCCTG-P----"))
- return true;else
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSOF=function(strSymbolID){try
- {var blRetVal=((strSymbolID.charAt(0)===('S'))&&(strSymbolID.charAt(2)===('F')));return blRetVal;}
- catch(t)
- {}
- return false;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSonobuoy=function(strSymbolID){var basic=this.getBasicSymbolID(strSymbolID);var blRetVal=(basic.substring(0,8)==="G*G*GPUY");return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSeaSurface=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('S'))&&(strSymbolID.charAt(2)===('S')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSubSurface=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('S'))&&(strSymbolID.charAt(2)===('U')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEquipment=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('S'))&&(strSymbolID.charAt(2)===('G'))&&(strSymbolID.charAt(4)===('E')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEMSEquipment=function(strSymbolID){var basicCode=this.getBasicSymbolID(strSymbolID),blRetVal=false;if(strSymbolID.charAt(0)==='E')
- {if(basicCode===("E*O*AB----*****")||basicCode===("E*O*AE----*****")||basicCode===("E*O*AF----*****")||basicCode===("E*O*BB----*****")||basicCode===("E*O*CB----*****")||basicCode===("E*O*CC----*****")||basicCode===("E*O*DB----*****")||(basicCode.substring(0,5)===("E*O*D")&&basicCode.indexOf("B---*****")>0)||(basicCode.substring(0,5)===("E*O*E")&&basicCode.indexOf("----*****")>0)||basicCode===("E*F*BA----*****")||basicCode===("E*F*LF----*****")||basicCode===("E*F*MA----*****")||basicCode===("E*F*MC----*****"))
- {blRetVal=true;}}
- return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEMS=function(strSymbolID){return(strSymbolID[0]==='E');};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEMSNaturalEvent=function(strSymbolID){return(strSymbolID.charAt(0)==='E'&&strSymbolID.charAt(2)==='N');};armyc2.c2sd.renderer.utilities.SymbolUtilities.isEMSIncident=function(strSymbolID){return(strSymbolID.charAt(0)==='E'&&strSymbolID.charAt(2)==='I');};armyc2.c2sd.renderer.utilities.SymbolUtilities.isInstallation=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('S'))&&(strSymbolID.charAt(2)===('G'))&&(strSymbolID.charAt(4)===('I')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isSIGINT=function(strSymbolID){var blRetVal=((strSymbolID.charAt(0)===('I')));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isFeintDummyInstallation=function(strSymbolID){var blRetVal=(strSymbolID.charAt(10)===('H')&&strSymbolID.charAt(11)===('B'));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasInstallationModifier=function(strSymbolID){var blRetVal=(strSymbolID.charAt(10)===('H'));return blRetVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.getAffiliation=function(strSymbolID){return strSymbolID.charAt(1);};armyc2.c2sd.renderer.utilities.SymbolUtilities.getStatus=function(strSymbolID){return strSymbolID.charAt(3);};armyc2.c2sd.renderer.utilities.SymbolUtilities.getEchelon=function(strSymbolID){return strSymbolID.charAt(11);};armyc2.c2sd.renderer.utilities.SymbolUtilities.getUnitAffiliationModifier=function(symbolID,symStd){var textChar=null,affiliation=null;if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- affiliation=symbolID.charAt(1);if(affiliation===('F')||affiliation===('H')||affiliation===('U')||affiliation===('N')||affiliation===('P'))
- {textChar=null;}
- else if(affiliation===('A')||affiliation===('S'))
- {if(symStd===armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525Bch2_USAS_13_14)
- textChar="?";else
- textChar=null;}
- else if(affiliation===('J'))
- textChar="J";else if(affiliation===('K'))
- textChar="K";else if(affiliation===('D')||affiliation===('L')||affiliation===('G')||affiliation===('W'))
- textChar="X";else if(affiliation===('M'))
- {if(symStd===armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525Bch2_USAS_13_14)
- textChar="X?";else
- textChar="X";}
- if(symStd===armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525C)
- {if(symbolID.charAt(4)==='W'&&symbolID.charAt(0)==='S'&&symbolID.charAt(5)==='M')
- {var temp=symbolID.substring(6,8);if(temp==="GX"||temp==="MX"||temp==="FX"||temp==="SX"||temp.charAt(0)==="X")
- textChar="X";else
- textChar=null;}}
- return textChar;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasAMmodifierWidth=function(symbolID,symStd){var sd=null,returnVal=false,basic=this.getBasicSymbolID(symbolID);if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable;basic=this.getBasicSymbolID(symbolID);sd=SymbolDefTable.getSymbolDef(basic,symStd);if(sd!==null)
- {var dc=sd.drawCategory;switch(dc)
- {case SymbolDefTable.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:returnVal=true;break;default:returnVal=false;}}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasAMmodifierRadius=function(symbolID,symStd){var sd=null,returnVal=false,basic=this.getBasicSymbolID(symbolID);if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable;basic=this.getBasicSymbolID(symbolID);sd=SymbolDefTable.getSymbolDef(basic,symStd);if(sd!==null)
- {var dc=sd.drawCategory;switch(dc)
- {case SymbolDefTable.DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:returnVal=true;break;default:returnVal=false;}}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.hasANmodifier=function(symbolID,symStd){var sd=null,returnVal=false,basic=this.getBasicSymbolID(symbolID);if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable;basic=this.getBasicSymbolID(symbolID);sd=SymbolDefTable.getSymbolDef(basic,symStd);if(sd!==null)
- {var dc=sd.drawCategory;switch(dc)
- {case SymbolDefTable.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case SymbolDefTable.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:returnVal=true;break;default:returnVal=false;}}
- return returnVal;};armyc2.c2sd.renderer.utilities.SymbolUtilities.isMultiPoint=function(symbolID,symStd){return armyc2.c2sd.renderer.utilities.SymbolDefTable.isMultiPoint(symbolID,symStd);};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.ShapeInfo=function(shape,shapeType)
- {var _Shape=null,stroke=null,gp=null,fillStyle=null,texturePaint=null,_shapeType=-1,lineColor=null,fillColor=null,lineWidth=2,affineTransform=null,_TextLayout=null,_Position=null,_ModifierString=null,_ModifierStringPosition=null,_ModifierStringAngle=0,_Tag=null,_Polylines=null;if(shapeType)
- {_shapeType=shapeType;}
- if(shape)
- {_Shape=shape;}
- this.getShape=function()
- {return _Shape;};this.setShape=function(value)
- {_Shape=value;};this.setModifierString=function(value)
- {_ModifierString=value;};this.getModifierString=function()
- {return _ModifierString;};this.setModifierStringPosition=function(value)
- {_ModifierStringPosition=value;};this.getModifierStringPosition=function()
- {return _ModifierStringPosition;};this.getGlyphPosition=function()
- {return _Position;};this.setGlyphPosition=function(value)
- {_Position=value;};this.setModifierStringAngle=function(value)
- {_ModifierStringAngle=value;};this.getModifierStringAngle=function()
- {return _ModifierStringAngle;};this.setTag=function(value)
- {_Tag=value;};this.getTag=function()
- {return _Tag;};this.setLineColor=function(value)
- {lineColor=value;};this.getLineColor=function()
- {return lineColor;};this.setFillColor=function(value)
- {fillColor=value;};this.getFillColor=function()
- {return fillColor;};this.setAffineTransform=function(value)
- {affineTransform=value;};this.getAffineTransform=function()
- {return affineTransform;};this.setStroke=function(value)
- {stroke=value;};this.getStroke=function()
- {return stroke;};this.getTexturePaint=function()
- {return texturePaint;};this.setTexturePaint=function(value)
- {texturePaint=value;};this.setTextLayout=function(value)
- {_TextLayout=value;};this.getTextLayout=function()
- {return _TextLayout;};this.setShapeType=function(value)
- {_shapeType=value;};this.getShapeType=function()
- {return _shapeType;};this.setPolylines=function(value)
- {_Polylines=value;};this.getPolylines=function()
- {return _Polylines;};this.getBounds=function()
- {var temp=null;if(_Shape!==null)
- {temp=this._Shape.getBounds();if(this._Shape instanceof armyc2.c2sd.graphics2d.GeneralPath)
- {if(shapeType===armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_OUTLINE)
- {if(lineColor!==null&&stroke!==null){var bs=this.stroke;if(bs!==null&&bs.getLineWidth()>2)
- temp.grow(Math.floor(Math.round(bs.getLineWidth())/2),Math.floor(Math.round(bs.getLineWidth())/2));}}
- else
- {if(lineColor!==null&&stroke!==null)
- {var bs=stroke;if(bs!==null&&bs.getLineWidth()>2)
- temp.grow(Math.round(bs.getLineWidth())-1,Math.round(bs.getLineWidth())-1);}}}}
- if(_TextLayout!==null&&_Position!==null){temp=_TextLayout.getPixelBounds(null,_Position.getX(),_Position.getY());}else if(_TextLayout!==null){temp=new armyc2.c2sd.graphics2d.Rectangle(0,0,0,0);temp.setRect(this._TextLayout.getBounds());}else
- return null;if(this.affineTransform!==null){var sTemp=temp;sTemp=this.affineTransform.createTransformedShape(temp);temp=sTemp.getBounds();}
- return temp;};};armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_POLYLINE=0;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_FILL=1;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_MODIFIER=2;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_MODIFIER_FILL=3;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_FRAME=4;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_FILL=5;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_SYMBOL1=6;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_SYMBOL2=7;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_DISPLAY_MODIFIER=8;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_ECHELON=9;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_AFFILIATION_MODIFIER=10;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_HQ_STAFF=11;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_TG_SP_FILL=12;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_TG_SP_FRAME=13;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_TG_Q_MODIFIER=14;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_TG_SP_OUTLINE=15;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_SINGLE_POINT_OUTLINE=16;armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_UNIT_OUTLINE=17;armyc2.c2sd.renderer.utilities.ShapeInfoTextLayout=function(textLayout,position)
- {var si=armyc2.c2sd.renderer.utilities.ShapeInfo();si.setTextLayout(textLayout);si.setGlyphPosition(position);};armyc2.c2sd.renderer.utilities.ShapeInfoGlyphVector=function(glyphVector,position)
- {var si=armyc2.c2sd.renderer.utilities.ShapeInfo();si.setGlyphPosition(position);};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SymbolDefTable=(function(){var symbolMapB=null,symbolMapC=null,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings,SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,parser;return{DRAW_CATEGORY_DONOTDRAW:0,DRAW_CATEGORY_LINE:1,DRAW_CATEGORY_AUTOSHAPE:2,DRAW_CATEGORY_POLYGON:3,DRAW_CATEGORY_ARROW:4,DRAW_CATEGORY_ROUTE:5,DRAW_CATEGORY_TWOPOINTLINE:6,DRAW_CATEGORY_POINT:8,DRAW_CATEGORY_TWOPOINTARROW:9,DRAW_CATEGORY_SUPERAUTOSHAPE:15,DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:16,DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:17,DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:18,DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:19,DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:20,DRAW_CATEGORY_3D_AIRSPACE:40,DRAW_CATEGORY_UNKNOWN:99,xmlDoc:null,init:function()
- {var i,data=null,symbol=null,symbols,count;if(symbolMapB===null&&armyc2.c2sd.renderer.xml.SymbolConstantsB!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.SymbolConstantsB.SYMBOLCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.SymbolConstantsB=null;symbolMapB={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.minPoints=parseInt(symbol["MINPOINTS"]||"",10);data.maxPoints=parseInt(symbol["MAXPOINTS"]||"",10);data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.modifiers=symbol["MODIFIERS"]||"";data.description=symbol["DESCRIPTION"]||"";}
- if((symbolMapB[data.symbolID])===undefined)
- {symbolMapB[data.symbolID]=data;}}}
- if(symbolMapC===null&&armyc2.c2sd.renderer.xml.SymbolConstantsC!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.SymbolConstantsC.SYMBOLCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.SymbolConstantsC=null;symbolMapC={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.minPoints=parseInt(symbol["MINPOINTS"]||"",10);data.maxPoints=parseInt(symbol["MAXPOINTS"]||"",10);data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.modifiers=symbol["MODIFIERS"]||"";data.description=symbol["DESCRIPTION"]||"";}
- if((symbolMapC[data.symbolID])===undefined)
- {symbolMapC[data.symbolID]=data;}}}},hasSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return true;}
- else if(symStd===1&&symbolMapC!==null)
- {return true;}
- else
- return false;},getSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return symbolMapB;}
- else if(symStd===1&&symbolMapC!==null)
- {return symbolMapC;}
- else
- return null;},getSymbolDef:function(symbolID,symStd){if(!(symStd))
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return symbolMap[symbolID];}
- else
- {return null;}},hasSymbolDef:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return true;}
- else
- {return false;}},isMultiPoint:function(symbolID,symStd){if(symStd===undefined)
- {symStd=RendererSettings.getSymbologyStandard();}
- var codingScheme=symbolID.charAt(0);var returnVal=false;if(codingScheme==='G'||codingScheme==='W')
- {var sd=this.getSymbolDef(SymbolUtilities.getBasicSymbolID(symbolID),symStd);if(sd)
- {if(sd.maxPoints>1)
- {returnVal=true;}
- else
- {switch(sd.drawCategory)
- {case this.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:case this.DRAW_CATEGORY_ROUTE:returnVal=true;break;default:returnVal=false;}}
- return returnVal;}else{return false;}}
- else if(symbolID.substring(0,3)==="BS_"||symbolID.substring(0,4)==="BBS_")
- {return true;}
- else
- {return false;}}};}());var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.Angle=function()
- {};org.gavaghan.geodesy.Angle.toRadians=function(degrees){return degrees*0.017453292519943295;};org.gavaghan.geodesy.Angle.toDegrees=function(radians){return radians/0.017453292519943295;};org.gavaghan.geodesy.Angle.PiOver180=0.017453292519943295;var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.Ellipsoid=function()
- {this.mSemiMajorAxis=0;this.mSemiMinorAxis=0;this.mFlattening=0;this.mInverseFlattening=0;var semiMajor=arguments[0];var semiMinor=arguments[1];var flattening=arguments[2];var inverseFlattening=arguments[3];this.mSemiMajorAxis=semiMajor;this.mSemiMinorAxis=semiMinor;this.mFlattening=flattening;this.mInverseFlattening=inverseFlattening;this.getSemiMajorAxis=function(){return this.mSemiMajorAxis;};this.getSemiMinorAxis=function(){return this.mSemiMinorAxis;};this.getFlattening=function(){return this.mFlattening;};this.getInverseFlattening=function(){return this.mInverseFlattening;};};org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF=function(semiMajor,inverseFlattening){var f=1.0/inverseFlattening;var b=(1.0-f)*semiMajor;return new org.gavaghan.geodesy.Ellipsoid(semiMajor,b,f,inverseFlattening);};org.gavaghan.geodesy.Ellipsoid.fromAAndF=function(semiMajor,flattening){var inverseF=1.0/flattening;var b=(1.0-flattening)*semiMajor;return new org.gavaghan.geodesy.Ellipsoid(semiMajor,b,flattening,inverseF);};org.gavaghan.geodesy.Ellipsoid.WGS84=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378137.0,298.257223563);org.gavaghan.geodesy.Ellipsoid.GRS80=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378137.0,298.257222101);org.gavaghan.geodesy.Ellipsoid.GRS67=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378160.0,298.25);org.gavaghan.geodesy.Ellipsoid.ANS=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378160.0,298.25);org.gavaghan.geodesy.Ellipsoid.WGS72=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378135.0,298.26);org.gavaghan.geodesy.Ellipsoid.Clarke1858=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378293.645,294.26);org.gavaghan.geodesy.Ellipsoid.Clarke1880=org.gavaghan.geodesy.Ellipsoid.fromAAndInverseF(6378249.145,293.465);org.gavaghan.geodesy.Ellipsoid.Sphere=org.gavaghan.geodesy.Ellipsoid.fromAAndF(6371000,0.0);var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.GeodeticCalculator=function()
- {this.TwoPi=6.283185307179586;this.calculateEndingGlobalCoordinates=function(ellipsoid,start,startBearing,distance){return org.gavaghan.geodesy.GeodeticCalculator.calculateEndingGlobalCoordinates(ellipsoid,start,startBearing,distance,null);};this.calculateGeodeticCurve=function(ellipsoid,start,end){var a=ellipsoid.getSemiMajorAxis();var b=ellipsoid.getSemiMinorAxis();var f=ellipsoid.getFlattening();var phi1=org.gavaghan.geodesy.Angle.toRadians(start.getLatitude());var lambda1=org.gavaghan.geodesy.Angle.toRadians(start.getLongitude());var phi2=org.gavaghan.geodesy.Angle.toRadians(end.getLatitude());var lambda2=org.gavaghan.geodesy.Angle.toRadians(end.getLongitude());var a2=a*a;var b2=b*b;var a2b2b2=(a2-b2)/b2;var omega=lambda2-lambda1;var tanphi1=Math.tan(phi1);var tanU1=(1.0-f)*tanphi1;var U1=Math.atan(tanU1);var sinU1=Math.sin(U1);var cosU1=Math.cos(U1);var tanphi2=Math.tan(phi2);var tanU2=(1.0-f)*tanphi2;var U2=Math.atan(tanU2);var sinU2=Math.sin(U2);var cosU2=Math.cos(U2);var sinU1sinU2=sinU1*sinU2;var cosU1sinU2=cosU1*sinU2;var sinU1cosU2=sinU1*cosU2;var cosU1cosU2=cosU1*cosU2;var lambda=omega;var A=0.0;var B=0.0;var sigma=0.0;var deltasigma=0.0;var lambda0;var converged=false;for(var i=0;i<20;i++){lambda0=lambda;var sinlambda=Math.sin(lambda);var coslambda=Math.cos(lambda);var sin2sigma=(cosU2*sinlambda*cosU2*sinlambda)+(cosU1sinU2-sinU1cosU2*coslambda)*(cosU1sinU2-sinU1cosU2*coslambda);var sinsigma=Math.sqrt(sin2sigma);var cossigma=sinU1sinU2+(cosU1cosU2*coslambda);sigma=Math.atan2(sinsigma,cossigma);var sinalpha=(sin2sigma===0)?0.0:cosU1cosU2*sinlambda/sinsigma;var alpha=Math.asin(sinalpha);var cosalpha=Math.cos(alpha);var cos2alpha=cosalpha*cosalpha;var cos2sigmam=cos2alpha===0.0?0.0:cossigma-2*sinU1sinU2/cos2alpha;var u2=cos2alpha*a2b2b2;var cos2sigmam2=cos2sigmam*cos2sigmam;A=1.0+u2/16384*(4096+u2*(-768+u2*(320-175*u2)));B=u2/1024*(256+u2*(-128+u2*(74-47*u2)));deltasigma=B*sinsigma*(cos2sigmam+B/4*(cossigma*(-1+2*cos2sigmam2)-B/6*cos2sigmam*(-3+4*sin2sigma)*(-3+4*cos2sigmam2)));var C=f/16*cos2alpha*(4+f*(4-3*cos2alpha));lambda=omega+(1-C)*f*sinalpha*(sigma+C*sinsigma*(cos2sigmam+C*cossigma*(-1+2*cos2sigmam2)));var change=Math.abs((lambda-lambda0)/lambda);if((i>1)&&(change<0.0000000000001)){converged=true;break;}}
- var s=b*A*(sigma-deltasigma);var alpha1;var alpha2;if(!converged){if(phi1>phi2){alpha1=180.0;alpha2=0.0;}else if(phi1<phi2){alpha1=0.0;alpha2=180.0;}else{alpha1=NaN;alpha2=NaN;}}else{var radians;radians=Math.atan2(cosU2*Math.sin(lambda),(cosU1sinU2-sinU1cosU2*Math.cos(lambda)));if(radians<0.0)
- radians+=6.283185307179586;alpha1=org.gavaghan.geodesy.Angle.toDegrees(radians);radians=Math.atan2(cosU1*Math.sin(lambda),(-sinU1cosU2+cosU1sinU2*Math.cos(lambda)))+3.141592653589793;if(radians<0.0)
- radians+=6.283185307179586;alpha2=org.gavaghan.geodesy.Angle.toDegrees(radians);}
- if(alpha1>=360.0)
- alpha1-=360.0;if(alpha2>=360.0)
- alpha2-=360.0;return new org.gavaghan.geodesy.GeodeticCurve(s,alpha1,alpha2);};this.calculateGeodeticMeasurement=function(refEllipsoid,start,end){var elev1=start.getElevation();var elev2=end.getElevation();var elev12=(elev1+elev2)/2.0;var phi1=org.gavaghan.geodesy.Angle.toRadians(start.getLatitude());var phi2=org.gavaghan.geodesy.Angle.toRadians(end.getLatitude());var phi12=(phi1+phi2)/2.0;var refA=refEllipsoid.getSemiMajorAxis();var f=refEllipsoid.getFlattening();var a=refA+elev12*(1.0+f*Math.sin(phi12));var ellipsoid=org.gavaghan.geodesy.Ellipsoid.fromAAndF(a,f);var start1=new org.gavaghan.geodesy.GlobalCoordinates(start.getLatitude(),start.getLongitude());var end1=new org.gavaghan.geodesy.GlobalCoordinates(end.getLatitude(),end.getLongitude());var averageCurve=org.gavaghan.geodesy.GeodeticCalculator.calculateGeodeticCurve(ellipsoid,start1,end1);return new org.gavaghan.geodesy.GeodeticMeasurement(averageCurve,elev2-elev1);};};org.gavaghan.geodesy.GeodeticCalculator.calculateEndingGlobalCoordinates=function(ellipsoid,start,startBearing,distance,endBearing){var a=ellipsoid.getSemiMajorAxis();var b=ellipsoid.getSemiMinorAxis();var aSquared=a*a;var bSquared=b*b;var f=ellipsoid.getFlattening();var phi1=org.gavaghan.geodesy.Angle.toRadians(start.getLatitude());var alpha1=org.gavaghan.geodesy.Angle.toRadians(startBearing);var cosAlpha1=Math.cos(alpha1);var sinAlpha1=Math.sin(alpha1);var s=distance;var tanU1=(1.0-f)*Math.tan(phi1);var cosU1=1.0/Math.sqrt(1.0+tanU1*tanU1);var sinU1=tanU1*cosU1;var sigma1=Math.atan2(tanU1,cosAlpha1);var sinAlpha=cosU1*sinAlpha1;var sin2Alpha=sinAlpha*sinAlpha;var cos2Alpha=1-sin2Alpha;var uSquared=cos2Alpha*(aSquared-bSquared)/bSquared;var A=1+(uSquared/16384)*(4096+uSquared*(-768+uSquared*(320-175*uSquared)));var B=(uSquared/1024)*(256+uSquared*(-128+uSquared*(74-47*uSquared)));var deltaSigma;var sOverbA=s/(b*A);var sigma=sOverbA;var sinSigma;var prevSigma=sOverbA;var sigmaM2;var cosSigmaM2;var cos2SigmaM2;for(;;){sigmaM2=2.0*sigma1+sigma;cosSigmaM2=Math.cos(sigmaM2);cos2SigmaM2=cosSigmaM2*cosSigmaM2;sinSigma=Math.sin(sigma);var cosSignma=Math.cos(sigma);deltaSigma=B*sinSigma*(cosSigmaM2+(B/4.0)*(cosSignma*(-1+2*cos2SigmaM2)-(B/6.0)*cosSigmaM2*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM2)));sigma=sOverbA+deltaSigma;if(Double.isNaN(sigma)||Double.isNaN(prevSigma)){throw new RuntimeException("Point values may be the same; approximation convereged to NaN");}
- if(Math.abs(sigma-prevSigma)<0.0000000000001)
- break;prevSigma=sigma;}
- sigmaM2=2.0*sigma1+sigma;cosSigmaM2=Math.cos(sigmaM2);cos2SigmaM2=cosSigmaM2*cosSigmaM2;var cosSigma=Math.cos(sigma);sinSigma=Math.sin(sigma);var phi2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1.0-f)*Math.sqrt(sin2Alpha+Math.pow(sinU1*sinSigma-cosU1*cosSigma*cosAlpha1,2.0)));var lambda=Math.atan2(sinSigma*sinAlpha1,(cosU1*cosSigma-sinU1*sinSigma*cosAlpha1));var C=(f/16)*cos2Alpha*(4+f*(4-3*cos2Alpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cosSigmaM2+C*cosSigma*(-1+2*cos2SigmaM2)));var alpha2=Math.atan2(sinAlpha,-sinU1*sinSigma+cosU1*cosSigma*cosAlpha1);var latitude=org.gavaghan.geodesy.Angle.toDegrees(phi2);var longitude=start.getLongitude()+org.gavaghan.geodesy.Angle.toDegrees(L);if((endBearing!==null)&&(endBearing.length>0)){endBearing[0]=org.gavaghan.geodesy.Angle.toDegrees(alpha2);}
- return new org.gavaghan.geodesy.GlobalCoordinates(latitude,longitude);};org.gavaghan.geodesy.GeodeticCalculator.calculateGeodeticCurve=function(ellipsoid,start,end){var a=ellipsoid.getSemiMajorAxis();var b=ellipsoid.getSemiMinorAxis();var f=ellipsoid.getFlattening();var phi1=org.gavaghan.geodesy.Angle.toRadians(start.getLatitude());var lambda1=org.gavaghan.geodesy.Angle.toRadians(start.getLongitude());var phi2=org.gavaghan.geodesy.Angle.toRadians(end.getLatitude());var lambda2=org.gavaghan.geodesy.Angle.toRadians(end.getLongitude());var a2=a*a;var b2=b*b;var a2b2b2=(a2-b2)/b2;var omega=lambda2-lambda1;var tanphi1=Math.tan(phi1);var tanU1=(1.0-f)*tanphi1;var U1=Math.atan(tanU1);var sinU1=Math.sin(U1);var cosU1=Math.cos(U1);var tanphi2=Math.tan(phi2);var tanU2=(1.0-f)*tanphi2;var U2=Math.atan(tanU2);var sinU2=Math.sin(U2);var cosU2=Math.cos(U2);var sinU1sinU2=sinU1*sinU2;var cosU1sinU2=cosU1*sinU2;var sinU1cosU2=sinU1*cosU2;var cosU1cosU2=cosU1*cosU2;var lambda=omega;var A=0.0;var B=0.0;var sigma=0.0;var deltasigma=0.0;var lambda0;var converged=false;for(var i=0;i<20;i++){lambda0=lambda;var sinlambda=Math.sin(lambda);var coslambda=Math.cos(lambda);var sin2sigma=(cosU2*sinlambda*cosU2*sinlambda)+(cosU1sinU2-sinU1cosU2*coslambda)*(cosU1sinU2-sinU1cosU2*coslambda);var sinsigma=Math.sqrt(sin2sigma);var cossigma=sinU1sinU2+(cosU1cosU2*coslambda);sigma=Math.atan2(sinsigma,cossigma);var sinalpha=(sin2sigma===0)?0.0:cosU1cosU2*sinlambda/sinsigma;var alpha=Math.asin(sinalpha);var cosalpha=Math.cos(alpha);var cos2alpha=cosalpha*cosalpha;var cos2sigmam=cos2alpha===0.0?0.0:cossigma-2*sinU1sinU2/cos2alpha;var u2=cos2alpha*a2b2b2;var cos2sigmam2=cos2sigmam*cos2sigmam;A=1.0+u2/16384*(4096+u2*(-768+u2*(320-175*u2)));B=u2/1024*(256+u2*(-128+u2*(74-47*u2)));deltasigma=B*sinsigma*(cos2sigmam+B/4*(cossigma*(-1+2*cos2sigmam2)-B/6*cos2sigmam*(-3+4*sin2sigma)*(-3+4*cos2sigmam2)));var C=f/16*cos2alpha*(4+f*(4-3*cos2alpha));lambda=omega+(1-C)*f*sinalpha*(sigma+C*sinsigma*(cos2sigmam+C*cossigma*(-1+2*cos2sigmam2)));var change=Math.abs((lambda-lambda0)/lambda);if((i>1)&&(change<0.0000000000001)){converged=true;break;}}
- var s=b*A*(sigma-deltasigma);var alpha1;var alpha2;if(!converged){if(phi1>phi2){alpha1=180.0;alpha2=0.0;}else if(phi1<phi2){alpha1=0.0;alpha2=180.0;}else{alpha1=NaN;alpha2=NaN;}}else{var radians;radians=Math.atan2(cosU2*Math.sin(lambda),(cosU1sinU2-sinU1cosU2*Math.cos(lambda)));if(radians<0.0)
- radians+=6.283185307179586;alpha1=org.gavaghan.geodesy.Angle.toDegrees(radians);radians=Math.atan2(cosU1*Math.sin(lambda),(-sinU1cosU2+cosU1sinU2*Math.cos(lambda)))+3.141592653589793;if(radians<0.0)
- radians+=6.283185307179586;alpha2=org.gavaghan.geodesy.Angle.toDegrees(radians);}
- if(alpha1>=360.0)
- alpha1-=360.0;if(alpha2>=360.0)
- alpha2-=360.0;return new org.gavaghan.geodesy.GeodeticCurve(s,alpha1,alpha2);};var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.GeodeticCurve=function()
- {this.mEllipsoidalDistance=0;this.mAzimuth=0;this.mReverseAzimuth=0;var ellipsoidalDistance=arguments[0];var azimuth=arguments[1];var reverseAzimuth=arguments[2];this.mEllipsoidalDistance=ellipsoidalDistance;this.mAzimuth=azimuth;this.mReverseAzimuth=reverseAzimuth;this.getEllipsoidalDistance=function(){return this.mEllipsoidalDistance;};this.getAzimuth=function(){return this.mAzimuth;};this.getReverseAzimuth=function(){return this.mReverseAzimuth;};this.toString=function(){var buffer="";buffer+="s=";buffer+=this.mEllipsoidalDistance;buffer+=";a12=";buffer+=this.mAzimuth;buffer+=";a21=";buffer+=this.mReverseAzimuth;buffer+=";";return buffer;};};var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.GeodeticMeasurement=function()
- {this.mElevationChange=0;this.mP2P=0;this.mEllipsoidalDistance=0;this.mAzimuth=0;this.mReverseAzimuth=0;var ellipsoidalDistance;var azimuth;var reverseAzimuth;var elevationChange;if(arguments.length===4)
- {ellipsoidalDistance=arguments[0];azimuth=arguments[1];reverseAzimuth=arguments[2];elevationChange=arguments[3];this.mEllipsoidalDistance=ellipsoidalDistance;this.mAzimuth=azimuth;this.mReverseAzimuth=reverseAzimuth;this.mElevationChange=elevationChange;this.mP2P=Math.sqrt(ellipsoidalDistance*ellipsoidalDistance+this.mElevationChange*this.mElevationChange);}
- if(arguments.length===2)
- {var averageCurve=arguments[0];elevationChange=arguments[1];this.mEllipsoidalDistance=averageCurve.getEllipsoidalDistance();this.mAzimuth=averageCurve.getAzimuth();this.mReverseAzimuth=averageCurve.getReverseAzimuth();this.mElevationChange=elevationChange;}
- this.getElevationChange=function(){return this.mElevationChange;};this.getPointToPointDistance=function(){return this.mP2P;};this.toString=function(){var buffer="";buffer+="s=";buffer+=this.mEllipsoidalDistance;buffer+=";a12=";buffer+=this.mAzimuth;buffer+=";a21=";buffer+=this.mReverseAzimuth;buffer+=";";buffer+=("elev12=");buffer+=(this.mElevationChange);buffer+=(";p2p=");buffer+=(this.mP2P);return buffer;};};var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.GlobalCoordinates=function()
- {this.mLatitude=0;this.mLongitude=0;var latitude=arguments[0];var longitude=arguments[1];this.mLatitude=latitude;this.mLongitude=longitude;org.gavaghan.geodesy.GlobalCoordinates.canonicalize(this);this.canonicalize=function()
- {this.mLatitude=(this.mLatitude+180)%360;if(this.mLatitude<0)
- this.mLatitude+=360;this.mLatitude-=180;if(this.mLatitude>90){this.mLatitude=180-this.mLatitude;this.mLongitude+=180;}else if(this.mLatitude<-90){this.mLatitude=-180-this.mLatitude;this.mLongitude+=180;}
- this.mLongitude=((this.mLongitude+180)%360);if(this.mLongitude<=0)
- this.mLongitude+=360;this.mLongitude-=180;};this.getLatitude=function(){return this.mLatitude;};this.setLatitude=function(latitude){this.mLatitude=latitude;org.gavaghan.geodesy.GlobalCoordinates.canonicalize(this);};this.getLongitude=function(){return this.mLongitude;};this.setLongitude=function(longitude){this.mLongitude=longitude;org.gavaghan.geodesy.GlobalCoordinates.canonicalize(this);};this.compareTo=function(other){var retval;if(this.mLongitude<other.mLongitude)
- retval=-1;else if(this.mLongitude>other.mLongitude)
- retval=1;else if(this.mLatitude<other.mLatitude)
- retval=-1;else if(this.mLatitude>other.mLatitude)
- retval=1;else
- retval=0;return retval;};this.hashCode=function(){return(Math.round((this.mLongitude*this.mLatitude*1000000+1021)))*1000033;};this.equals=function(obj){if(!(Clazz.instanceOf(obj,org.gavaghan.geodesy.GlobalCoordinates)))
- return false;var other=obj;return(this.mLongitude===other.mLongitude)&&(this.mLatitude===other.mLatitude);};this.toString=function(){var buffer="";buffer+=(Math.abs(this.mLatitude));buffer+=(((this.mLatitude>=0)?'N':'S')).charCodeAt(0);buffer+=((';')).charCodeAt(0);buffer+=(Math.abs(this.mLongitude));buffer+=(((this.mLongitude>=0)?'E':'W')).charCodeAt(0);buffer+=((';')).charCodeAt(0);return buffer;};};org.gavaghan.geodesy.GlobalCoordinates.canonicalize=function(that)
- {that.mLatitude=(that.mLatitude+180)%360;if(that.mLatitude<0)
- that.mLatitude+=360;that.mLatitude-=180;if(that.mLatitude>90){that.mLatitude=180-that.mLatitude;that.mLongitude+=180;}else if(that.mLatitude<-90){that.mLatitude=-180-that.mLatitude;that.mLongitude+=180;}
- that.mLongitude=((that.mLongitude+180)%360);if(that.mLongitude<=0)
- that.mLongitude+=360;that.mLongitude-=180;};var org=org||{};org.gavaghan=org.gavaghan||{};org.gavaghan.geodesy=org.gavaghan.geodesy||{};org.gavaghan.geodesy.GlobalPosition=function()
- {this.mElevation=0;this.mLatitude=0;this.mLongitude=0;var latitude;var longitude;var elevation;if(arguments.length===3)
- {latitude=arguments[0];longitude=arguments[1];elevation=arguments[2];this.mLatitude=latitude;this.mLongitude=longitude;org.gavaghan.geodesy.GlobalPosition.canonicalize(this);this.mElevation=elevation;}
- if(arguments.length===2)
- {var coords=arguments[0];elevation=arguments[1];this.mLatitude=coords.getLatitude();this.mLongitude=coords.getLongitude();org.gavaghan.geodesy.GlobalPosition.canonicalize(this);this.mElevation=elevation;}
- this.getElevation=function(){return this.mElevation;};this.setElevation=function(elevation){this.mElevation=elevation;};this.compareTo=function(other){var retval;if(this.mLongitude<other.mLongitude)
- retval=-1;else if(this.mLongitude>other.mLongitude)
- retval=1;else if(this.mLatitude<other.mLatitude)
- retval=-1;else if(this.mLatitude>other.mLatitude)
- retval=1;else
- retval=0;if(retval===0){if(this.mElevation<other.mElevation)
- retval=-1;else if(this.mElevation>other.mElevation)
- retval=1;}
- return retval;};this.hashCode=function(){var hash=Clazz.superCall(this,org.gavaghan.geodesy.GlobalPosition,"hashCode",[]);if(this.mElevation!==0)
- hash*=Math.round(this.mElevation);return hash;};this.equals=function(obj){if(!(Clazz.instanceOf(obj,org.gavaghan.geodesy.GlobalPosition)))
- return false;var other=obj;return(this.mElevation===other.mElevation)&&(Clazz.superCall(this,org.gavaghan.geodesy.GlobalPosition,"equals",[other]));};this.toString=function(){var buffer="";buffer+=(Math.abs(this.mLatitude));buffer+=(((this.mLatitude>=0)?'N':'S')).charCodeAt(0);buffer+=((';')).charCodeAt(0);buffer+=(Math.abs(this.mLongitude));buffer+=(((this.mLongitude>=0)?'E':'W')).charCodeAt(0);buffer+=((';')).charCodeAt(0);buffer+=("elevation=");buffer+=(Double.toString(this.mElevation));buffer+=("m");return buffer;};this.canonicalize=function(){this.mLatitude=(this.mLatitude+180)%360;if(this.mLatitude<0)
- this.mLatitude+=360;this.mLatitude-=180;if(this.mLatitude>90){this.mLatitude=180-this.mLatitude;this.mLongitude+=180;}else if(this.mLatitude<-90){this.mLatitude=-180-this.mLatitude;this.mLongitude+=180;}
- this.mLongitude=((this.mLongitude+180)%360);if(this.mLongitude<=0)
- this.mLongitude+=360;this.mLongitude-=180;};this.getLatitude=function(){return this.mLatitude;};this.getLongitude=function(){return this.mLongitude;};};org.gavaghan.geodesy.GlobalPosition.canonicalize=function(obj){obj.mLatitude=(obj.mLatitude+180)%360;if(obj.mLatitude<0)
- obj.mLatitude+=360;obj.mLatitude-=180;if(obj.mLatitude>90){obj.mLatitude=180-obj.mLatitude;obj.mLongitude+=180;}else if(obj.mLatitude<-90){obj.mLatitude=-180-obj.mLatitude;obj.mLongitude+=180;}
- obj.mLongitude=((obj.mLongitude+180)%360);if(obj.mLongitude<=0)
- this.mLongitude+=360;obj.mLongitude-=180;};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoArc=function()
- {this.moveTo=function(point){this.path.moveTo(point.x,point.y);this.toPoints.add(point);};this.moveToLatLong=function(longitudeDegrees,latitudeDegrees){this.moveTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.lineTo=function(point){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var lastPoint=new sec.geo.GeoPoint();if(this.toPoints.size()>0){lastPoint=this.toPoints.get(this.toPoints.size()-1);newPath.moveTo(lastPoint.x,lastPoint.y);}
- var start=this.toGlobalCoord(lastPoint);var end=this.toGlobalCoord(point);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoArc.REFERENCE_ELLIPSOID,start,end);var distance=this.maxDistanceMeters;while(distance<curve.getEllipsoidalDistance()){var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoArc.REFERENCE_ELLIPSOID,start,curve.getAzimuth(),distance);newPath.lineTo(c.getLongitude(),c.getLatitude());distance+=this.maxDistanceMeters;}
- newPath.lineTo(point.x,point.y);this.path.append(newPath,true);this.toPoints.add(point);};this.lineToLatLong=function(longitudeDegrees,latitudeDegrees){this.lineTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.arcTo=function(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees){var count=0;var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var arc;if(leftAzimuthDegrees>rightAzimuthDegrees){arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs((360-leftAzimuthDegrees)+rightAzimuthDegrees),0);}else{arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs(leftAzimuthDegrees-rightAzimuthDegrees),0);}
- var point=null;if(pivot!==null){var it=new armyc2.c2sd.graphics2d.FlatteningPathIterator(arc.getPathIterator(null),this.flatnessDistanceMeters,this.limit);while(!it.isDone()){count++;var strokePoints=Clazz.newArray(6,0);var type=it.currentSegment(strokePoints);var x=strokePoints[0];var y=strokePoints[1];var azimuth=org.gavaghan.geodesy.Angle.toDegrees(Math.atan2(x,y));var coord=new org.gavaghan.geodesy.GlobalCoordinates(pivot.getLatitude(),pivot.getLongitude());var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoArc.REFERENCE_ELLIPSOID,coord,azimuth,new armyc2.c2sd.graphics2d.Point2D(0,0).distance(x,y));switch(type){case 0:newPath.moveTo(c.getLongitude(),c.getLatitude());var startPoint=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());if(this.toPoints.size()>0&&!startPoint.equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(startPoint);}
- break;case 1:newPath.lineTo(c.getLongitude(),c.getLatitude());point=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());break;}
- it.next();}}
- this.path.append(newPath,true);this.toPoints.add(point);};this.getToPoints=function(){return this.toPoints;};this.closePath=function(){if(this.toPoints.size()>0&&!this.toPoints.get(0).equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(this.toPoints.get(0));}};this.getPathIterator=function(at){return this.path.getPathIterator(at);};this.toString=function(){return this.toPoints.toString();};this.toGlobalCoord=function(point){return new org.gavaghan.geodesy.GlobalCoordinates(point.getLatitude(),point.getLongitude());};this.path=null;this.toPoints=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.limit=0;this.geoCalc=null;var pivot=arguments[0];var widthMeters=arguments[1];var heightMeters=arguments[2];var leftAzimuth=arguments[3];var rightAzimuth=arguments[4];var maxDistanceMeters=arguments[5];var flatnessDistanceMeters=arguments[6];var limit=arguments[7];this.path=new armyc2.c2sd.graphics2d.GeneralPath();this.toPoints=new java.util.ArrayList();this.geoCalc=new org.gavaghan.geodesy.GeodeticCalculator();this.maxDistanceMeters=maxDistanceMeters;this.flatnessDistanceMeters=flatnessDistanceMeters;this.limit=limit;this.moveTo(pivot);this.arcTo(pivot,widthMeters,heightMeters,leftAzimuth,rightAzimuth);this.closePath();};sec.geo.GeoArc.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoBlock=function()
- {this.moveTo=function(point){this.path.moveTo(point.x,point.y);this.toPoints.add(point);};this.moveToLatLong=function(longitudeDegrees,latitudeDegrees){this.moveTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.simplify=function(){var pi=this.path.getPathIterator(null);var pts=pi.getPoints();var newPts=new java.util.ArrayList();var j=0;var style=-1;var lastStyle=-1;var nextstyle=-1;var currentPt=null;var lastPt=null;for(j=0;j<pts.size();j++){style=pts.get(j).style;currentPt=pts.get(j);if(j>0){lastStyle=pts.get(j-1).style;lastPt=pts.get(j-1);}
- if(lastStyle===1&&style===0){if(currentPt.x===lastPt.x&¤tPt.y===lastPt.y)
- continue;}
- newPts.add(currentPt);}
- pi.setPathIterator(newPts);};this.lineTo=function(point){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var lastPoint=new sec.geo.GeoPoint();if(this.toPoints.size()>0){lastPoint=this.toPoints.get(this.toPoints.size()-1);newPath.moveTo(lastPoint.x,lastPoint.y);}
- var start=this.toGlobalCoord(lastPoint);var end=this.toGlobalCoord(point);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,start,end);var distance=this.maxDistanceMeters;while(distance<curve.getEllipsoidalDistance()){var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,start,curve.getAzimuth(),distance);newPath.lineTo(c.getLongitude(),c.getLatitude());distance+=this.maxDistanceMeters;}
- newPath.lineTo(point.x,point.y);this.path.append(newPath,true);this.toPoints.add(point);this.simplify();};this.lineToLatLong=function(longitudeDegrees,latitudeDegrees){this.lineTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.getToPoints=function(){return this.toPoints;};this.closePath=function(){if(this.toPoints.size()>0&&!this.toPoints.get(0).equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(this.toPoints.get(0));}};this.getPathIterator=function(at){return this.path.getPathIterator(at);};this.toString=function(){return this.toPoints.toString();};this.toGlobalCoord=function(point){return new org.gavaghan.geodesy.GlobalCoordinates(point.getLatitude(),point.getLongitude());};this.path=null;this.toPoints=null;this.maxDistanceMeters=0;this.geoCalc=null;var p1=arguments[0];var p2=arguments[1];var widthMeters=arguments[2];var maxDistanceMeters=arguments[3];var flatnessDistanceMeters=arguments[4];var limit=arguments[5];this.path=new armyc2.c2sd.graphics2d.GeneralPath();this.toPoints=new java.util.ArrayList();this.geoCalc=new org.gavaghan.geodesy.GeodeticCalculator();this.maxDistanceMeters=maxDistanceMeters;var c1=this.toGlobalCoord(p1);var c2=this.toGlobalCoord(p2);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,c1,c2);var a1=curve.getAzimuth();var a2=curve.getReverseAzimuth();var radius=widthMeters/2;var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,c1,a1-90,radius);this.moveToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,c2,a2+90,radius);this.lineToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,c2,a2-90,radius);this.lineToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock.REFERENCE_ELLIPSOID,c1,a1+90,radius);this.lineToLatLong(c.getLongitude(),c.getLatitude());this.closePath();};sec.geo.GeoBlock.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoBlock2=function()
- {this.moveTo=function(point){this.path.moveTo(point.x,point.y);this.toPoints.add(point);};this.moveToLatLong=function(longitudeDegrees,latitudeDegrees){this.moveTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.lineTo=function(point){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var lastPoint=new sec.geo.GeoPoint();if(this.toPoints.size()>0){lastPoint=this.toPoints.get(this.toPoints.size()-1);newPath.moveTo(lastPoint.x,lastPoint.y);}
- var start=this.toGlobalCoord(lastPoint);var end=this.toGlobalCoord(point);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,start,end);var distance=this.maxDistanceMeters;while(distance<curve.getEllipsoidalDistance()){var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,start,curve.getAzimuth(),distance);newPath.lineTo(c.getLongitude(),c.getLatitude());distance+=this.maxDistanceMeters;}
- newPath.lineTo(point.x,point.y);this.path.append(newPath,true);this.toPoints.add(point);this.simplify();};this.lineToLatLong=function(longitudeDegrees,latitudeDegrees){this.lineTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.getToPoints=function(){return this.toPoints;};this.closePath=function(){if(this.toPoints.size()>0&&!this.toPoints.get(0).equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(this.toPoints.get(0));}};this.getPathIterator=function(at,flatness){return this.path.getPathIterator(at);};this.toString=function(){return this.toPoints.toString();};this.toGlobalCoord=function(point){return new org.gavaghan.geodesy.GlobalCoordinates(point.getLatitude(),point.getLongitude());};this.simplify=function(){var pi=this.path.getPathIterator(null);var pts=pi.getPoints();var newPts=new java.util.ArrayList();var j=0;var style=-1;var lastStyle=-1;var nextstyle=-1;var currentPt=null;var lastPt=null;for(j=0;j<pts.size();j++){style=pts.get(j).style;currentPt=pts.get(j);if(j>0){lastStyle=pts.get(j-1).style;lastPt=pts.get(j-1);}
- if(lastStyle===1&&style===0){if(currentPt.x===lastPt.x&¤tPt.y===lastPt.y)continue;}
- newPts.add(currentPt);}
- pi.setPathIterator(newPts);};this.path=null;this.toPoints=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.limit=0;this.geoCalc=null;var p1=arguments[0];var p2=arguments[1];var leftWidthMeters=arguments[2];var rightWidthMeters=arguments[3];var maxDistanceMeters=arguments[4];var flatnessDistanceMeters=arguments[5];var limit=arguments[6];this.path=new armyc2.c2sd.graphics2d.GeneralPath();this.toPoints=new java.util.ArrayList();this.geoCalc=new org.gavaghan.geodesy.GeodeticCalculator();this.maxDistanceMeters=maxDistanceMeters;var c1=this.toGlobalCoord(p1);var c2=this.toGlobalCoord(p2);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,c1,c2);var a1=curve.getAzimuth();var a2=curve.getReverseAzimuth();var leftRadius=leftWidthMeters;var rightRadius=rightWidthMeters;var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,c1,a1-90,leftRadius);this.moveToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,c2,a2+90,leftRadius);this.lineToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,c2,a2-90,rightRadius);this.lineToLatLong(c.getLongitude(),c.getLatitude());c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoBlock2.REFERENCE_ELLIPSOID,c1,a1+90,rightRadius);this.lineToLatLong(c.getLongitude(),c.getLatitude());this.closePath();};sec.geo.GeoBlock2.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoEllipse=function()
- {this.arcTo=function(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var arc;if(leftAzimuthDegrees>rightAzimuthDegrees){arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs((360-leftAzimuthDegrees)+rightAzimuthDegrees),0);}else{arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs(leftAzimuthDegrees-rightAzimuthDegrees),0);}
- var point=null;if(pivot!==null){var it=new armyc2.c2sd.graphics2d.FlatteningPathIterator(arc.getPathIterator(null),this.flatnessDistanceMeters,this.limit);while(!it.isDone()){var strokePoints=Clazz.newArray(6,0);var type=it.currentSegment(strokePoints);var x=strokePoints[0];var y=strokePoints[1];var azimuth=org.gavaghan.geodesy.Angle.toDegrees(Math.atan2(x,y));var coord=new org.gavaghan.geodesy.GlobalCoordinates(pivot.getLatitude(),pivot.getLongitude());var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoEllipse.REFERENCE_ELLIPSOID,coord,azimuth,new armyc2.c2sd.graphics2d.Point2D().distance(x,y));switch(type){case 0:newPath.moveTo(c.getLongitude(),c.getLatitude());var startPoint=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());if(this.toPoints.size()>0&&!startPoint.equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(startPoint);}
- break;case 1:newPath.lineTo(c.getLongitude(),c.getLatitude());point=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());break;}
- it.next();}}
- this.path.append(newPath,true);this.toPoints.add(point);};this.lineTo=function(point){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var lastPoint=new sec.geo.GeoPoint();if(this.toPoints.size()>0){lastPoint=this.toPoints.get(this.toPoints.size()-1);newPath.moveTo(lastPoint.x,lastPoint.y);}
- var start=this.toGlobalCoord(lastPoint);var end=this.toGlobalCoord(point);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoEllipse.REFERENCE_ELLIPSOID,start,end);var distance=this.maxDistanceMeters;while(distance<curve.getEllipsoidalDistance()){var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoEllipse.REFERENCE_ELLIPSOID,start,curve.getAzimuth(),distance);newPath.lineTo(c.getLongitude(),c.getLatitude());distance+=this.maxDistanceMeters;}
- newPath.lineTo(point.x,point.y);this.path.append(newPath,true);this.toPoints.add(point);};this.toGlobalCoord=function(point){return new org.gavaghan.geodesy.GlobalCoordinates(point.getLatitude(),point.getLongitude());};this.getPathIterator=function(at){return this.path.getPathIterator(at);};this.path=null;this.toPoints=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.limit=0;this.geoCalc=null;var pivot=arguments[0];var widthMeters=arguments[1];var heightMeters=arguments[2];var maxDistanceMeters=arguments[3];var flatnessDistanceMeters=arguments[4];var limit=arguments[5];this.path=new armyc2.c2sd.graphics2d.GeneralPath();this.toPoints=new java.util.ArrayList();this.geoCalc=new org.gavaghan.geodesy.GeodeticCalculator();this.maxDistanceMeters=maxDistanceMeters;this.flatnessDistanceMeters=flatnessDistanceMeters;this.limit=limit;this.arcTo(pivot,widthMeters,heightMeters,0,180);this.arcTo(pivot,widthMeters,heightMeters,180,0);};sec.geo.GeoEllipse.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoPath=function()
- {this.path=null;this.toPoints=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.limit=0;this.geoCalc=null;var maxDistanceMeters=100000;var flatnessDistanceMeters=1;var limit=4;if(arguments.length===3)
- {maxDistanceMeters=arguments[0];flatnessDistanceMeters=arguments[1];limit=arguments[2];}
- this.path=new armyc2.c2sd.graphics2d.GeneralPath();this.toPoints=new java.util.ArrayList();this.geoCalc=new org.gavaghan.geodesy.GeodeticCalculator();this.maxDistanceMeters=maxDistanceMeters;this.flatnessDistanceMeters=flatnessDistanceMeters;this.limit=limit;this.moveTo=function(point){this.path.moveTo(point.x,point.y);this.toPoints.add(point);};this.moveToLatLong=function(longitudeDegrees,latitudeDegrees){this.moveTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.lineTo=function(point){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var lastPoint=new sec.geo.GeoPoint();if(this.toPoints.size()>0){lastPoint=this.toPoints.get(this.toPoints.size()-1);newPath.moveTo(lastPoint.x,lastPoint.y);}
- var start=this.toGlobalCoord(lastPoint);var end=this.toGlobalCoord(point);var curve=this.geoCalc.calculateGeodeticCurve(sec.geo.GeoPath.REFERENCE_ELLIPSOID,start,end);var distance=this.maxDistanceMeters;while(distance<curve.getEllipsoidalDistance()){var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoPath.REFERENCE_ELLIPSOID,start,curve.getAzimuth(),distance);newPath.lineTo(c.getLongitude(),c.getLatitude());distance+=this.maxDistanceMeters;}
- newPath.lineTo(point.x,point.y);this.path.append(newPath,true);this.toPoints.add(point);};this.lineToLatlong=function(longitudeDegrees,latitudeDegrees){this.lineTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.arcTo=function(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees){var newPath=new armyc2.c2sd.graphics2d.GeneralPath();var arc;if(leftAzimuthDegrees>rightAzimuthDegrees){arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs((360-leftAzimuthDegrees)+rightAzimuthDegrees),0);}else{arc=new armyc2.c2sd.graphics2d.Arc2D(-widthMeters/2,-heightMeters/2,widthMeters,heightMeters,leftAzimuthDegrees-90,Math.abs(leftAzimuthDegrees-rightAzimuthDegrees),0);}
- var point=null;if(pivot!==null){var it=new armyc2.c2sd.graphics2d.FlatteningPathIterator(arc.getPathIterator(null),this.flatnessDistanceMeters,this.limit);while(!it.isDone()){var strokePoints=Clazz.newArray(6,0);var type=it.currentSegment(strokePoints);var x=strokePoints[0];var y=strokePoints[1];var azimuth=org.gavaghan.geodesy.Angle.toDegrees(Math.atan2(x,y));var coord=new org.gavaghan.geodesy.GlobalCoordinates(pivot.getLatitude(),pivot.getLongitude());var c=this.geoCalc.calculateEndingGlobalCoordinates(sec.geo.GeoPath.REFERENCE_ELLIPSOID,coord,azimuth,new armyc2.c2sd.graphics2d.Point2D(0,0).distance(x,y));switch(type){case 0:newPath.moveTo(c.getLongitude(),c.getLatitude());var startPoint=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());if(this.toPoints.size()>0&&!startPoint.equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(startPoint);}
- break;case 1:newPath.lineTo(c.getLongitude(),c.getLatitude());point=new sec.geo.GeoPoint(c.getLongitude(),c.getLatitude());break;}
- it.next();}}
- this.path.append(newPath,true);this.toPoints.add(point);};this.getToPoints=function(){return this.toPoints;};this.closePath=function(){if(this.toPoints.size()>0&&!this.toPoints.get(0).equals(this.toPoints.get(this.toPoints.size()-1))){this.lineTo(this.toPoints.get(0));}};this.getPathIterator=function(at){return this.path.getPathIterator(at);};this.toString=function(){return this.toPoints.toString();};this.toGlobalCoord=function(point){return new org.gavaghan.geodesy.GlobalCoordinates(point.getLatitude(),point.getLongitude());};};sec.geo.GeoPath.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.GeoPoint=function()
- {this.x=0;this.y=0;if(arguments.length===2)
- {var longitudeDegrees=arguments[0];var latitudeDegrees=arguments[1];this.x=longitudeDegrees;this.y=latitudeDegrees;}
- this.getLatitude=function(){return this.y;};this.setLatitude=function(latitudeDegrees){this.y=latitudeDegrees;};this.getLongitude=function(){return this.x;};this.setLongitude=function(longitudeDegrees){this.x=longitudeDegrees;};this.toString=function(){return this.x+","+this.y;};this.equals=function(x1,y1)
- {if(x1===this.x&&y1===this.y)
- return true;else
- return false;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.ShapeObject=function()
- {this.type=-1;this.geoEllipse=null;this.geoPath=null;this.geoArc=null;this.geoBlock=null;this.geoBlock2=null;this.geoPoint=null;this.area=null;this.geoCalc=null;var obj=null;if(arguments.length===1)
- obj=arguments[0];if(Clazz.instanceOf(obj,sec.geo.GeoArc))
- {this.geoArc=obj;this.type=0;}
- else if(Clazz.instanceOf(obj,sec.geo.GeoPath))
- {this.geoPath=obj;this.type=4;}
- else if(Clazz.instanceOf(obj,sec.geo.GeoEllipse))
- {this.geoEllipse=obj;this.type=3;}
- else if(Clazz.instanceOf(obj,sec.geo.GeoBlock))
- {this.geoBlock=obj;this.type=1;}
- else if(Clazz.instanceOf(obj,sec.geo.GeoBlock2))
- {this.geoBlock2=obj;this.type=2;}
- else if(Clazz.instanceOf(obj,sec.geo.GeoPoint))
- {this.geoPoint=obj;this.type=5;}
- else if(Clazz.instanceOf(obj,armyc2.c2sd.graphics2d.Area)){this.area=obj;this.type=6;}
- this.arcTo=function(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees){switch(this.type){case 3:this.geoEllipse.arcTo(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees);break;case 0:this.geoArc.arcTo(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees);break;case 4:this.geoPath.arcTo(pivot,widthMeters,heightMeters,leftAzimuthDegrees,rightAzimuthDegrees);break;default:break;}};this.getPathIterator=function(at){switch(this.type){case 3:return this.geoEllipse.getPathIterator(at);case 4:return this.geoPath.getPathIterator(at);case 1:return this.geoBlock.getPathIterator(at);case 2:return this.geoBlock2.getPathIterator(at,0);case 0:return this.geoArc.getPathIterator(at);default:return null;}};this.moveTo=function(point){switch(this.type){case 3:break;case 5:break;case 0:this.geoArc.moveTo(point);break;case 4:this.geoPath.moveTo(point);break;case 1:this.geoBlock.moveTo(point);break;case 2:this.geoBlock2.moveTo(point);break;default:break;}};this.moveToLatLong=function(longitudeDegrees,latitudeDegrees){switch(this.type){case 3:break;case 5:break;case 0:this.geoArc.moveToLatLong(longitudeDegrees,latitudeDegrees);break;case 4:this.geoPath.moveToLatLong(longitudeDegrees,latitudeDegrees);break;case 1:this.geoBlock.moveToLatLong(longitudeDegrees,latitudeDegrees);break;case 2:this.geoBlock2.moveToLatLong(longitudeDegrees,latitudeDegrees);break;default:break;}};this.lineTo=function(point){switch(this.type){case 3:break;case 5:break;case 0:this.geoArc.lineTo(point);break;case 4:this.geoPath.lineTo(point);break;case 1:this.geoBlock.lineTo(point);break;case 2:this.geoBlock2.lineTo(point);break;default:break;}};this.lineToLatLong=function(longitudeDegrees,latitudeDegrees){this.lineTo(new sec.geo.GeoPoint(longitudeDegrees,latitudeDegrees));};this.closePath=function(){switch(this.type){case 0:this.geoArc.closePath();break;case 1:this.geoBlock.closePath();break;case 2:this.geoBlock2.closePath();break;case 4:this.geoPath.closePath();;break;default:break;}};};sec.geo.ShapeObject.GEOARC=0;sec.geo.ShapeObject.GEOBLOCK=1;sec.geo.ShapeObject.GEOBLOCK2=2;sec.geo.ShapeObject.GEOELLIPSE=3;sec.geo.ShapeObject.GEOPATH=4;sec.geo.ShapeObject.GEOPOINT=5;sec.geo.ShapeObject.AREA=6;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.AExtObject=function()
- {this.type=-1;this.orbit=null;this.cake=null;this.circle=null;this.point=null;this.radarc=null;this.polyarc=null;this.polygon=null;this.line=null;this.route=null;this.track=null;var obj=arguments[0];if(Clazz.instanceOf(obj,Integer))
- {this.type=(obj).intValue();switch(this.type){case 1:this.line=new sec.geo.shape.Line();break;case 2:this.orbit=new sec.geo.shape.Orbit();break;case 5:this.radarc=new sec.geo.shape.Radarc();break;case 0:this.cake=new sec.geo.shape.Cake();break;default:break;}}
- else if(Clazz.instanceOf(obj,sec.geo.shape.Line)){this.line=obj;this.type=1;}else if(Clazz.instanceOf(obj,sec.geo.shape.Route)){this.route=obj;this.type=8;}else if(Clazz.instanceOf(obj,sec.geo.shape.Polygon)){this.polygon=obj;this.type=7;}else if(Clazz.instanceOf(obj,sec.geo.shape.Radarc)){this.radarc=obj;this.type=5;}else if(Clazz.instanceOf(obj,sec.geo.shape.Polyarc)){this.polyarc=obj;this.type=6;}else if(Clazz.instanceOf(obj,sec.geo.shape.Orbit)){this.orbit=obj;this.type=2;}else if(Clazz.instanceOf(obj,sec.geo.shape.Cake)){this.cake=obj;this.type=0;}else if(Clazz.instanceOf(obj,sec.geo.shape.Circle)){this.circle=obj;this.type=4;}else if(Clazz.instanceOf(obj,sec.geo.shape.Point)){this.point=obj;this.type=3;}else if(Clazz.instanceOf(obj,sec.geo.shape.Track)){this.track=obj;this.type=9;}
- this.getElements=function()
- {if(this.track!==null)
- return this.track.elements;else if(this.cake!==null)
- return this.cake.elements;else
- return null;};this.setMaxDistance=function(maxDistanceMeters){switch(this.type){case 2:this.orbit.setMaxDistance(maxDistanceMeters);break;case 4:this.circle.setMaxDistance(maxDistanceMeters);break;case 5:this.radarc.setMaxDistance(maxDistanceMeters);break;case 6:this.polyarc.setMaxDistance(maxDistanceMeters);break;case 7:this.polygon.setMaxDistance(maxDistanceMeters);break;case 8:this.route.setMaxDistance(maxDistanceMeters);break;case 1:this.line.setMaxDistance(maxDistanceMeters);break;case 4:this.circle.setMaxDistance(maxDistanceMeters);break;default:break;}};this.addPoint=function(point){switch(this.type){case 1:this.line.addPoint(point);break;case 5:break;case 2:this.orbit.addPoint(point);break;case 6:this.polyarc.addPoint(point);break;case 7:this.polygon.addPoint(point);break;case 8:this.route.addPoint(point);break;default:break;}
- return;};this.setFlatness=function(flatnessDistanceMeters){switch(this.type){case 1:this.line.setFlatness(flatnessDistanceMeters);break;case 2:this.orbit.setFlatness(flatnessDistanceMeters);break;case 4:this.circle.setFlatness(flatnessDistanceMeters);break;case 5:this.radarc.setFlatness(flatnessDistanceMeters);break;case 6:this.polyarc.setFlatness(flatnessDistanceMeters);break;case 7:this.polygon.setFlatness(flatnessDistanceMeters);break;case 8:this.route.setFlatness(flatnessDistanceMeters);break;default:break;}
- this.shapeChanged();};this.setLimit=function(limit){switch(this.type){case 1:this.line.setLimit(limit);break;case 2:this.orbit.setLimit(limit);break;case 4:this.circle.setLimit(limit);break;case 5:this.radarc.setLimit(limit);break;case 6:this.polyarc.setLimit(limit);break;case 7:this.polygon.setLimit(limit);break;case 8:this.route.setLimit(limit);break;default:break;}
- this.shapeChanged();};this.getMinAltitude=function(){switch(this.type){case 1:return this.line.getMinAltitude();case 2:return this.orbit.getMinAltitude();case 4:return this.circle.getMinAltitude();case 6:return this.polyarc.getMinAltitude();case 7:return this.polygon.getMinAltitude();case 8:return this.route.getMinAltitude();case 5:return this.radarc.getMinAltitude();default:return-1;}};this.getMaxAltitude=function(){switch(this.type){case 1:return this.line.getMaxAltitude();case 2:return this.orbit.getMaxAltitude();case 4:return this.circle.getMaxAltitude();case 6:return this.polyarc.getMaxAltitude();case 7:return this.polygon.getMaxAltitude();case 8:return this.route.getMaxAltitude();case 5:return this.radarc.getMaxAltitude();default:return-1;}
- return-1;};this.getAltitudeMode=function(){switch(this.type){case 1:return this.line.getAltitudeMode();case 2:return this.orbit.getAltitudeMode();case 4:return this.circle.getAltitudeMode();case 6:return this.polyarc.getAltitudeMode();case 7:return this.polygon.getAltitudeMode();case 8:return this.route.getAltitudeMode();case 5:return this.radarc.getAltitudeMode();default:return sec.geo.kml.KmlOptions.AltitudeMode.ABSOLUTE;}};this.getPathIterator=function(at){switch(this.type){case 1:return this.line.getShape().getPathIterator(at);case 2:return this.orbit.getShape().getPathIterator(at);case 7:return this.polygon.getShape().getPathIterator(at);case 6:return this.polyarc.getShape().getPathIterator(at);case 4:return this.circle.getShape().getPathIterator(at);case 5:return this.radarc.getShape().getPathIterator(at);case 8:return this.route.getShape().getPathIterator(at);default:return null;}};this.shapeChanged=function(){switch(this.type){case 7:this.polygon.shapeChanged();break;case 2:this.orbit.shapeChanged();break;case 8:this.route.shapeChanged();break;case 5:this.radarc.shapeChanged();break;case 6:this.polyarc.shapeChanged();break;default:break;}};};sec.geo.shape.AExtObject.CAKE=0;sec.geo.shape.AExtObject.LINE=1;sec.geo.shape.AExtObject.ORBIT=2;sec.geo.shape.AExtObject.POINT=3;sec.geo.shape.AExtObject.CIRCLE=4;sec.geo.shape.AExtObject.RADARC=5;sec.geo.shape.AExtObject.POLYARC=6;sec.geo.shape.AExtObject.POLYGON=7;sec.geo.shape.AExtObject.ROUTE=8;sec.geo.shape.AExtObject.TRACK=9;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Cake=function()
- {this.elements=new java.util.ArrayList();this.pivot=new sec.geo.GeoPoint();this.addLayer=function(layer)
- {if(Clazz.instanceOf(layer,sec.geo.shape.Polyarc))
- {layer.setPivot(this.pivot);this.elements.add(layer);}
- else if(Clazz.instanceOf(layer,sec.geo.shape.Radarc))
- {layer.setPivot(this.pivot);this.elements.add(layer);}
- else
- {throw new IllegalArgumentException();}};this.setPivot=function(pivot)
- {this.pivot=pivot;for(var j=0;j<this.elements.size();j++)
- {var layer=this.elements.get(j);if(Clazz.instanceOf(layer,sec.geo.shape.Polyarc))
- {(layer).setPivot(pivot);this.elements.add(layer);}
- else if(Clazz.instanceOf(layer,sec.geo.shape.Radarc))
- {(layer).setPivot(pivot);this.elements.add(layer);}
- else if(Clazz.instanceOf(layer,sec.geo.shape.Circle))
- {(layer).setPivot(pivot);this.elements.add(layer);}}};this.getElements=function()
- {return this.elements;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Circle=function()
- {this.pivot=null;this.radiusMeters=0;this.shape=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.altitudeMode=null;this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.limit=0;this.pivot=new sec.geo.GeoPoint();this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=3;this.getShape=function()
- {if(this.shape===null)
- {this.shape=this.createShape();}
- return this.shape;};this.setRadius=function(radiusMeters){this.radiusMeters=radiusMeters;this.shapeChanged();};this.setPivot=function(pivot){this.pivot=pivot;this.shapeChanged();};this.createShape=function(){var e=new sec.geo.GeoEllipse(this.pivot,this.radiusMeters*2,this.radiusMeters*2,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);return new sec.geo.ShapeObject(e);};this.shapeChanged=function(){this.shape=null;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Line=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.shape=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.altitudeMode=null;this.limit=0;this.points=null;this.points=new java.util.ArrayList();this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.addPoint=function(point){this.points.add(point);this.shapeChanged();};this.addPoints=function(points){this.points.addAll(points);this.shapeChanged();};this.createShape=function(){var path=new sec.geo.GeoPath(this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);for(var i=0;i<this.points.size();i++){if(i>0){path.lineTo(this.points.get(i));}else{path.moveTo(this.points.get(i));}}
- return new sec.geo.ShapeObject(path);};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};this.shapeChanged=function(){this.shape=null;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Orbit=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.altitudeMode=null;this.shape=null;this.limit=0;this.widthMeters=0;this.points=null;this.points=new java.util.ArrayList();this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.addPoint=function(point){this.points.add(point);this.shapeChanged();};this.addPoints=function(points){this.points.addAll(points);this.shapeChanged();};this.setWidth=function(widthMeters){this.widthMeters=widthMeters;this.shapeChanged();};this.createShape=function(){var orbit=new sec.sun.awt.geom.Area();var previousPoint=null;var point;var j=0;for(j=0;j<this.points.size();j++)
- {point=this.points.get(j);var ellipse=new sec.geo.GeoEllipse(point,this.widthMeters,this.widthMeters,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);var el=new sec.geo.ShapeObject(ellipse);var rhs=new sec.sun.awt.geom.Area(el);orbit.add(rhs);if(previousPoint!==null){var block=new sec.geo.GeoBlock(previousPoint,point,this.widthMeters,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);var bl=new sec.geo.ShapeObject(block);var rhs2=new sec.sun.awt.geom.Area(bl);orbit.add(rhs2);}
- previousPoint=point;}
- return orbit;};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};this.shapeChanged=function(){this.shape=null;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Point=function()
- {this.longitudeDegrees=0;this.latitudeDegrees=0;this.altitudeMeters=0;var longitudeDegrees=arguments[0];var latitudeDegrees=arguments[1];var altitudeMeters=0;this.longitudeDegrees=longitudeDegrees;this.latitudeDegrees=latitudeDegrees;if(arguments.length===3)
- {altitudeMeters=arguments[2];this.altitudeMeters=altitudeMeters;}
- this.getLongitude=function(){return this.longitudeDegrees;};this.getLatitude=function(){return this.latitudeDegrees;};this.getAltitude=function(){return this.altitudeMeters;};this.toGloablePos=function(){return new org.gavaghan.geodesy.GlobalPosition(this.getLatitude(),this.getLongitude(),this.getAltitude());};this.equals=function(o){if(!(Clazz.instanceOf(o,sec.geo.shape.Point))){return false;}
- var other=o;return(this.longitudeDegrees===other.longitudeDegrees)&&(this.latitudeDegrees===other.latitudeDegrees)&&(this.altitudeMeters===other.altitudeMeters);};this.toString=function(){return"["+this.longitudeDegrees+","+this.latitudeDegrees+","+this.altitudeMeters+"]";};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Polygon=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.altitudeMode=null;this.limit=0;this.shape=null;this.points=null;this.points=new java.util.ArrayList();this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.addPoint=function(point){this.points.add(point);this.shapeChanged();};this.addPoints=function(points){this.points.addAll(points);this.shapeChanged();};this.createShape=function(){var path=new sec.geo.GeoPath(this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);for(var i=0;i<this.points.size();i++){if(i>0){path.lineTo(this.points.get(i));}else{path.moveTo(this.points.get(i));}}
- path.closePath();return new sec.geo.ShapeObject(path);};this.shapeChanged=function(){this.shape=null;};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Radarc=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.shape=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.minRadiusMeters=0;this.leftAzimuthDegrees=0;this.rightAzimuthDegrees=0;this.pivot=null;this.radiusMeters=0;this.altitudeMode=null;this.limit=0;this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.setRightAzimuthDegrees=function(rightAzimuthDegrees){this.rightAzimuthDegrees=rightAzimuthDegrees;this.shapeChanged();};this.setLeftAzimuthDegrees=function(leftAzimuthDegrees){this.leftAzimuthDegrees=leftAzimuthDegrees;this.shapeChanged();};this.setMinRadius=function(minRadiusMeters){this.minRadiusMeters=minRadiusMeters;this.shapeChanged();};this.shapeChanged=function(){this.shape=null;};this.createShape=function(){var arc=new sec.geo.GeoArc(this.pivot,this.radiusMeters*2,this.radiusMeters*2,this.leftAzimuthDegrees,this.rightAzimuthDegrees,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);var arcObj=new sec.geo.ShapeObject(arc);var shape1=new sec.sun.awt.geom.Area(arcObj);var ellipse=new sec.geo.GeoEllipse(this.pivot,this.minRadiusMeters*2,this.minRadiusMeters*2,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);var ellipseObj=new sec.geo.ShapeObject(ellipse);shape1.subtract(new sec.sun.awt.geom.Area(ellipseObj));return shape1;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};this.setRadius=function(radiusMeters){this.radiusMeters=radiusMeters;this.shapeChanged();};this.setPivot=function(pivot){this.pivot=pivot;this.shapeChanged();};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Polyarc=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.shape=null;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.limit=0;this.pivot=null;this.radiusMeters=0;this.leftAzimuthDegrees=0;this.rightAzimuthDegrees=0;this.altitudeMode=null;this.points=null;this.points=new java.util.ArrayList();this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.addPoint=function(point)
- {this.points.add(point);this.shapeChanged();};this.addPoints=function(points)
- {this.points.addAll(points);this.shapeChanged();};this.setRadius=function(radiusMeters)
- {this.radiusMeters=radiusMeters;this.shapeChanged();};this.setPivot=function(pivot)
- {this.pivot=pivot;this.shapeChanged();};this.setRightAzimuthDegrees=function(rightAzimuthDegrees)
- {this.rightAzimuthDegrees=rightAzimuthDegrees;this.shapeChanged();};this.setLeftAzimuthDegrees=function(leftAzimuthDegrees)
- {this.leftAzimuthDegrees=leftAzimuthDegrees;this.shapeChanged();};this.createShape=function()
- {var path=new sec.geo.GeoPath(this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);for(var i=0;i<this.points.size();i++){var point=this.points.get(i);if(i===0){path.moveTo(point);}else{path.lineTo(point);}}
- path.arcTo(this.pivot,this.radiusMeters*2,this.radiusMeters*2,this.leftAzimuthDegrees,this.rightAzimuthDegrees);path.closePath();return new sec.geo.ShapeObject(path);};this.shapeChanged=function(){this.shape=null;};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Route=function()
- {this.minAltitudeMeters=0;this.maxAltitudeMeters=0;this.maxDistanceMeters=0;this.flatnessDistanceMeters=0;this.altitudeMode=null;this.limit=0;this.leftWidthMeters=0;this.rightWidthMeters=0;this.shape=null;this.points=null;this.maxDistanceMeters=100000;this.flatnessDistanceMeters=1;this.limit=4;this.points=new java.util.ArrayList();this.addPoint=function(point){this.points.add(point);this.shapeChanged();};this.addPoints=function(points){this.points.addAll(points);this.shapeChanged();};this.setLeftWidth=function(widthMeters){this.leftWidthMeters=widthMeters;this.shapeChanged();};this.setRightWidth=function(widthMeters){this.rightWidthMeters=widthMeters;this.shapeChanged();};this.createShape=function(){var route=new sec.sun.awt.geom.Area();var previousPoint=null;for(var i=0;i<this.points.size();i++){var point=this.points.get(i);if(previousPoint!==null){if(previousPoint.equals(point))
- continue;var block=new sec.geo.GeoBlock2(previousPoint,point,this.leftWidthMeters,this.rightWidthMeters,this.maxDistanceMeters,this.flatnessDistanceMeters,this.limit);var area=new sec.sun.awt.geom.Area(new sec.geo.ShapeObject(block));route.add(area);}
- previousPoint=point;}
- return route;};this.shapeChanged=function(){this.shape=null;};this.getShape=function(){if(this.shape===null){this.shape=this.createShape();}
- return this.shape;};this.getMinAltitude=function(){return this.minAltitudeMeters;};this.setMinAltitude=function(minAltitudeMeters){this.minAltitudeMeters=minAltitudeMeters;this.shapeChanged();};this.getMaxAltitude=function(){return this.maxAltitudeMeters;};this.setMaxAltitude=function(maxAltitudeMeters){this.maxAltitudeMeters=maxAltitudeMeters;this.shapeChanged();};this.setMaxDistance=function(maxDistanceMeters){this.maxDistanceMeters=maxDistanceMeters;this.shapeChanged();};this.setFlatness=function(flatnessDistanceMeters){this.flatnessDistanceMeters=flatnessDistanceMeters;this.shapeChanged();};this.setLimit=function(limit){this.limit=limit;this.shapeChanged();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.shape=sec.geo.shape||{};sec.geo.shape.Track=function()
- {this.elements=null;this.elements=new java.util.ArrayList();this.addRoute=function(route){this.elements.add(route);};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.utilities=sec.geo.utilities||{};sec.geo.utilities.StringBuilder=function()
- {this.str="";var str2;if(arguments.length===1)
- {str2=arguments[0];this.str+=str2;}};sec.geo.utilities.StringBuilder.prototype.append=function(obj){if(typeof(obj)==='string')
- {this.str+=obj;}
- else if(Clazz.instanceOf(obj,String))
- {this.str+=obj;}
- else if(Clazz.instanceOf(obj,Double)){var d=(obj).doubleValue();this.str+=Double.toString(d);}};sec.geo.utilities.StringBuilder.prototype.toString=function(){return this.str;};sec.geo.utilities.StringBuilder.prototype.replace=function(first,last,str2){var startStr="";var endStr="";startStr=this.str.substring(0,first);endStr=this.str.substring(last,this.str.length);this.str=startStr+str2+endStr;};sec.geo.utilities.StringBuilder.prototype.indexOf=function(str2){return this.str.indexOf(str2);};sec.geo.utilities.StringBuilder.prototype.indexOf2=function(str2,index){return this.str.indexOf(str2,index);};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Area=function()
- {this.curves=null;this.cachedBounds=null;this.curves=new sec.sun.awt.geom.Vector();var s;if(arguments.length===1)
- {s=arguments[0];this.curves=sec.sun.awt.geom.Area.pathToCurves(s.getPathIterator(null));}
- this.add=function(rhs){this.curves=new sec.sun.awt.geom.SomeOp(1).calculate(this.curves,rhs.curves);this.invalidateBounds();};this.subtract=function(rhs){this.curves=new sec.sun.awt.geom.SomeOp(0).calculate(this.curves,rhs.curves);this.invalidateBounds();};this.intersect=function(rhs){this.curves=new sec.sun.awt.geom.SomeOp(2).calculate(this.curves,rhs.curves);this.invalidateBounds();};this.exclusiveOr=function(rhs){this.curves=new sec.sun.awt.geom.SomeOp(3).calculate(this.curves,rhs.curves);this.invalidateBounds();};this.reset=function(){this.curves=new sec.sun.awt.geom.Vector();this.invalidateBounds();};this.isEmpty=function(){return(this.curves.size()===0);};this.isPolygonal=function(){var enum_=this.curves.elements();while(enum_.hasMoreElements()){if((enum_.nextElement()).getOrder()>1){return false;}}
- return true;};this.isRectangular=function(){var size=this.curves.size();if(size===0){return true;}
- if(size>3){return false;}
- var c1=this.curves.get(1);var c2=this.curves.get(2);if(c1.getOrder()!==1||c2.getOrder()!==1){return false;}
- if(c1.getXTop()!==c1.getXBot()||c2.getXTop()!==c2.getXBot()){return false;}
- if(c1.getYTop()!==c2.getYTop()||c1.getYBot()!==c2.getYBot()){return false;}
- return true;};this.isSingular=function(){if(this.curves.size()<3){return true;}
- var enum_=this.curves.elements();enum_.nextElement();while(enum_.hasMoreElements()){if((enum_.nextElement()).getOrder()===0){return false;}}
- return true;};this.invalidateBounds=function(){this.cachedBounds=null;};this.equals=function(other){if(other===this){return true;}
- if(other===null){return false;}
- var c=new sec.sun.awt.geom.SomeOp(3).calculate(this.curves,other.curves);return c.isEmpty();};this.getPathIterator=function(at){return new sec.sun.awt.geom.AreaIterator(this.curves,at);};};sec.sun.awt.geom.Area.pathToCurves=function(pi)
- {var curves=new sec.sun.awt.geom.Vector();var windingRule=pi.getWindingRule();var coords=new Array(23);var movx=0;var movy=0;var curx=0;var cury=0;var newx;var newy;while(!pi.isDone()){switch(pi.currentSegment(coords)){case 0:if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(movx>0)
- movx-=360;if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertLine(curves,curx,cury,movx,movy);curx=movx=coords[0];cury=movy=coords[1];if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(movx>0)
- movx-=360;}
- sec.sun.awt.geom.Curve.insertMove(curves,movx,movy);break;case 1:newx=coords[0];newy=coords[1];if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(newx>0)
- newx-=360;if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertLine(curves,curx,cury,newx,newy);curx=newx;cury=newy;break;case 2:newx=coords[2];newy=coords[3];if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertQuad(curves,curx,cury,coords);curx=newx;cury=newy;break;case 3:newx=coords[4];newy=coords[5];if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertCubic(curves,curx,cury,coords);curx=newx;cury=newy;break;case 4:if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(movx>0)
- movx-=360;if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertLine(curves,curx,cury,movx,movy);curx=movx;cury=movy;break;}
- pi.next();}
- if(sec.sun.awt.geom.Area.normalizeGeoPoints===true)
- {if(movx>0)
- movx-=360;if(curx>0)
- curx-=360;}
- sec.sun.awt.geom.Curve.insertLine(curves,curx,cury,movx,movy);var operator2=null;if(windingRule===0){operator2=new sec.sun.awt.geom.AreaOp2(0);}else{operator2=new sec.sun.awt.geom.AreaOp2(1);}
- var emptyCurves=new sec.sun.awt.geom.Vector();return operator2.calculate(curves,emptyCurves);};sec.sun.awt.geom.Area.normalizeGeoPoints=true;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.AreaIterator=function()
- {this.transform=null;this.curves=null;this.index=0;this.prevcurve=null;this.thiscurve=null;var curves;var at;if(arguments.length===2)
- {curves=arguments[0];at=arguments[1];this.curves=curves;this.transform=at;if(curves.size()>=1){this.thiscurve=curves.get(0);}}
- this.getWindingRule=function(){return 1;};this.isDone=function(){return(this.prevcurve===null&&this.thiscurve===null);};this.next=function(){if(this.prevcurve!==null){this.prevcurve=null;}else{this.prevcurve=this.thiscurve;this.index++;if(this.index<this.curves.size()){this.thiscurve=this.curves.get(this.index);if(this.thiscurve.getOrder()!==0&&this.prevcurve.getX1()===this.thiscurve.getX0()&&this.prevcurve.getY1()===this.thiscurve.getY0()){this.prevcurve=null;}}else{this.thiscurve=null;}}};this.currentSegmentFlt=function(coords){var dcoords=Clazz.newArray(6,0);var segtype=this.currentSegment(dcoords);var numpoints=(segtype===4?0:(segtype===2?2:(segtype===3?3:1)));for(var i=0;i<numpoints*2;i++){coords[i]=dcoords[i];}
- return segtype;};this.currentSegment=function(coords){var segtype=0;var numpoints=0;if(this.prevcurve!==null){if(this.thiscurve===null||this.thiscurve.getOrder()===0){return 4;}
- coords[0]=this.thiscurve.getX0();coords[1]=this.thiscurve.getY0();segtype=1;numpoints=1;}else if(this.thiscurve===null){}else{segtype=this.thiscurve.getSegment(coords);numpoints=this.thiscurve.getOrder();if(numpoints===0){numpoints=1;}}
- if(this.transform!==null){this.transform.transform(coords,0,coords,0,numpoints);}
- return segtype;};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.AreaOp2=function()
- {this.eo=null;this.nz=null;var type;if(arguments.length===1)
- {type=arguments[0];switch(type){case 0:this.eo=new sec.sun.awt.geom.EOWindOp();break;case 1:this.nz=new sec.sun.awt.geom.NZWindOp();break;default:break;}}
- this.calculate=function(left,right)
- {var edges=new sec.sun.awt.geom.Vector();sec.sun.awt.geom.AreaOp2.addEdges(edges,left,0);sec.sun.awt.geom.AreaOp2.addEdges(edges,right,1);edges=this.pruneEdges(edges);if(false)
- {System.out.println("result: ");var numcurves=edges.size();var curvelist=edges.toArray2();for(var i=0;i<numcurves;i++){System.out.println("curvelist["+i+"] = "+curvelist[i]);}}
- return edges;};this.pruneEdges=function(edges)
- {var eo=new sec.sun.awt.geom.EOWindOp();var nz=new sec.sun.awt.geom.NZWindOp();var numedges=edges.size();if(numedges<2){return edges;}
- var edgelist=new Array(numedges);var _enum=edges.elements();var k=0;while(_enum.hasMoreElements()){edgelist[k++]=_enum.nextElement();}
- sec.sun.awt.geom.Arrays.sort(edgelist);if(false){System.out.println("pruning: ");for(var i=0;i<numedges;i++){System.out.println("edgelist["+i+"] = "+edgelist[i]);}}
- var e;var left=0;var right=0;var cur=0;var next=0;var yrange=Clazz.newArray(2,0);var subcurves=new sec.sun.awt.geom.Vector();var chains=new sec.sun.awt.geom.Vector();var links=new sec.sun.awt.geom.Vector();while(left<numedges){var y=yrange[0];for(cur=next=right-1;cur>=left;cur--){e=edgelist[cur];if(e.getCurve().getYBot()>y){if(next>cur){edgelist[next]=e;}
- next--;}}
- left=next+1;if(left>=right){if(right>=numedges){break;}
- y=edgelist[right].getCurve().getYTop();if(y>yrange[0]){sec.sun.awt.geom.AreaOp2.finalizeSubCurves(subcurves,chains);}
- yrange[0]=y;}
- while(right<numedges){e=edgelist[right];if(e.getCurve().getYTop()>y){break;}
- right++;}
- yrange[1]=edgelist[left].getCurve().getYBot();if(right<numedges){y=edgelist[right].getCurve().getYTop();if(yrange[1]>y){yrange[1]=y;}}
- if(false){System.out.println("current line: y = ["+yrange[0]+", "+yrange[1]+"]");for(cur=left;cur<right;cur++){System.out.println(" "+edgelist[cur]);}}
- var nexteq=1;for(cur=left;cur<right;cur++){e=edgelist[cur];e.setEquivalence(0);for(next=cur;next>left;next--){var prevedge=edgelist[next-1];var ordering=e.compareTo(prevedge,yrange);if(yrange[1]<=yrange[0]){throw new InternalError("backstepping to "+yrange[1]+" from "+yrange[0]);}
- if(ordering>=0){if(ordering===0){var eq=prevedge.getEquivalence();if(eq===0){eq=nexteq++;prevedge.setEquivalence(eq);}
- e.setEquivalence(eq);}
- break;}
- edgelist[next]=prevedge;}
- edgelist[next]=e;}
- if(false){System.out.println("current sorted line: y = ["+yrange[0]+", "+yrange[1]+"]");for(cur=left;cur<right;cur++){System.out.println(" "+edgelist[cur]);}}
- this.newRow();var ystart=yrange[0];var yend=yrange[1];for(cur=left;cur<right;cur++){e=edgelist[cur];var etag;var eq=e.getEquivalence();if(eq!==0){var origstate=this.getState();etag=(origstate===1?-1:1);var activematch=null;var longestmatch=e;var furthesty=yend;do{this.classify(e);if(activematch===null&&e.isActiveFor(ystart,etag)){activematch=e;}
- y=e.getCurve().getYBot();if(y>furthesty){longestmatch=e;furthesty=y;}}while(++cur<right&&(e=edgelist[cur]).getEquivalence()===eq);--cur;if(this.getState()===origstate){etag=0;}else{e=(activematch!==null?activematch:longestmatch);}}else{etag=this.classify(e);}
- if(etag!==0){e.record(yend,etag);links.add(new sec.sun.awt.geom.CurveLink(e.getCurve(),ystart,yend,etag));}}
- if(this.getState()!==-1){System.out.println("Still inside at end of active edge list!");System.out.println("num curves = "+(right-left));System.out.println("num links = "+links.size());System.out.println("y top = "+yrange[0]);if(right<numedges){System.out.println("y top of next curve = "+edgelist[right].getCurve().getYTop());}else{System.out.println("no more curves");}
- for(cur=left;cur<right;cur++){e=edgelist[cur];System.out.println(e);var eq=e.getEquivalence();if(eq!==0){System.out.println(" was equal to "+eq+"...");}}}
- if(false){System.out.println("new links:");for(var i=0;i<links.size();i++){var link=links.elementAt(i);System.out.println(" "+link.getSubCurve());}}
- sec.sun.awt.geom.AreaOp2.resolveLinks(subcurves,chains,links);links.clear();yrange[0]=yend;}
- sec.sun.awt.geom.AreaOp2.finalizeSubCurves(subcurves,chains);var ret=new sec.sun.awt.geom.Vector();var enum_=subcurves.elements();var c=null;var obj=null;while(enum_.hasMoreElements()){link=enum_.nextElement();ret.add(link.getMoveto());var nextlink=link;while((nextlink=nextlink.getNext())!==null){if(!link.absorb(nextlink)){obj=link.getSubCurve();if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order0))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order1))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order2))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order3))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- c=obj;if(c===null)
- c=new sec.sun.awt.geom.CurveObject(obj);ret.add(c);link=nextlink;}}
- obj=link.getSubCurve();if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order0))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order1))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order2))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order3))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- c=obj;if(c===null)
- c=new sec.sun.awt.geom.CurveObject(obj);ret.add(c);}
- return ret;};this.newRow=function(){if(this.eo!==null)
- this.eo.newRow();else if(this.nz!==null)
- this.nz.newRow();};this.getState=function(){if(this.eo!==null)
- return this.eo.getState();else if(this.nz!==null)
- return this.nz.getState();else
- return-1;};this.classify=function(e){if(this.eo!==null)
- return this.eo.classify(e);else if(this.nz!==null)
- return this.nz.classify(e);else
- return-1;};};sec.sun.awt.geom.AreaOp2.EOWINDOP=0;sec.sun.awt.geom.AreaOp2.NZWINDOP=1;sec.sun.awt.geom.AreaOp2.CTAG_LEFT=0;sec.sun.awt.geom.AreaOp2.CTAG_RIGHT=1;sec.sun.awt.geom.AreaOp2.ETAG_IGNORE=0;sec.sun.awt.geom.AreaOp2.ETAG_ENTER=1;sec.sun.awt.geom.AreaOp2.ETAG_EXIT=-1;sec.sun.awt.geom.AreaOp2.RSTAG_INSDE=1;sec.sun.awt.geom.AreaOp2.RSTAG_OUTSIDE=-1;sec.sun.awt.geom.AreaOp2.EmptyLinkList=new Array(2);sec.sun.awt.geom.AreaOp2.EmptyChainList=new Array(2);sec.sun.awt.geom.AreaOp2.addEdges=function(edges,curves,curvetag){var enum_=curves.elements();var c=null;var obj=null;while(enum_.hasMoreElements())
- {obj=enum_.nextElement();if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- {c=obj;}
- else
- {c=new sec.sun.awt.geom.CurveObject(obj);}
- if(c.getOrder()>0){edges.add(new sec.sun.awt.geom.Edge(c,curvetag));}}};sec.sun.awt.geom.AreaOp2.finalizeSubCurves=function(subcurves,chains){var numchains=chains.size();if(numchains===0){return;}
- if((numchains&1)!==0){throw new InternalError("Odd number of chains!");}
- var endlist=new Array(numchains);chains.toArray(endlist);for(var i=1;i<numchains;i+=2){var open=endlist[i-1];var close=endlist[i];var subcurve=open.linkTo(close);if(subcurve!==null){subcurves.add(subcurve);}}
- chains.clear();};sec.sun.awt.geom.AreaOp2.resolveLinks=function(subcurves,chains,links){var numlinks=links.size();var linklist;if(numlinks===0){linklist=sec.sun.awt.geom.AreaOp2.EmptyLinkList;}else{if((numlinks&1)!==0){throw new InternalError("Odd number of new curves!");}
- linklist=new Array(numlinks+2);links.toArray(linklist);}
- var numchains=chains.size();var endlist;if(numchains===0){endlist=sec.sun.awt.geom.AreaOp2.EmptyChainList;}else{if((numchains&1)!==0){throw new InternalError("Odd number of chains!");}
- endlist=new Array(numchains+2);chains.toArray(endlist);}
- var curchain=0;var curlink=0;chains.clear();var chain=endlist[0];var nextchain=endlist[1];var link=linklist[0];var nextlink=linklist[1];while(chain!=null||link!=null){var connectchains=(link==null);var connectlinks=(chain==null);if(!connectchains&&!connectlinks){connectchains=((curchain&1)==0&&chain.getX()==nextchain.getX());connectlinks=((curlink&1)==0&&link.getX()==nextlink.getX());if(!connectchains&&!connectlinks){var cx=chain.getX();var lx=link.getX();connectchains=(nextchain!=null&&cx<lx&&sec.sun.awt.geom.AreaOp2.obstructs(nextchain.getX(),lx,curchain));connectlinks=(nextlink!=null&&lx<cx&&sec.sun.awt.geom.AreaOp2.obstructs(nextlink.getX(),cx,curlink));}}
- if(connectchains){var subcurve=chain.linkTo(nextchain);if(subcurve!==null){subcurves.add(subcurve);}
- curchain+=2;chain=endlist[curchain];nextchain=endlist[curchain+1];}
- if(connectlinks){var openend=new sec.sun.awt.geom.ChainEnd(link,null);var closeend=new sec.sun.awt.geom.ChainEnd(nextlink,openend);openend.setOtherEnd(closeend);chains.add(openend);chains.add(closeend);curlink+=2;link=linklist[curlink];nextlink=linklist[curlink+1];}
- if(!connectchains&&!connectlinks){chain.addLink(link);chains.add(chain);curchain++;chain=nextchain;nextchain=endlist[curchain+1];curlink++;link=nextlink;nextlink=linklist[curlink+1];}}
- if((chains.size()&1)!==0){System.out.println("Odd number of chains!");}};sec.sun.awt.geom.AreaOp2.obstructs=function(v1,v2,phase){return(((phase&1)===0)?(v1<=v2):(v1<v2));};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Arrays=function()
- {};sec.sun.awt.geom.Arrays.sort=function(a){var aux=new Array(a.length);for(var j=0;j<a.length;j++)
- aux[j]=a[j];sec.sun.awt.geom.Arrays.mergeSort(aux,a,0,a.length,0);};sec.sun.awt.geom.Arrays.swap=function(x,a,b){var t=x[a];x[a]=x[b];x[b]=t;};sec.sun.awt.geom.Arrays.compare=function(o1,o2){var c1=(o1).getCurve();var c2=(o2).getCurve();var v1;var v2;if((v1=c1.getYTop())===(v2=c2.getYTop())){if((v1=c1.getXTop())===(v2=c2.getXTop())){return 0;}}
- if(v1<v2){return-1;}
- return 1;};sec.sun.awt.geom.Arrays.test=2;sec.sun.awt.geom.Arrays.mergeSort=function(src,dest,low,high,off){var length=high-low;var i=0;var j=0;if(length<7){for(i=low;i<high;i++)
- for(j=i;j>low&&sec.sun.awt.geom.Arrays.compare(dest[j-1],dest[j])>0;j--)
- sec.sun.awt.geom.Arrays.swap(dest,j,j-1);return;}
- var destLow=low;var destHigh=high;low+=off;high+=off;var mid=(low+high)>>>1;if(mid===45)
- {sec.sun.awt.geom.Arrays.test=3;}
- sec.sun.awt.geom.Arrays.mergeSort(dest,src,low,mid,-off);sec.sun.awt.geom.Arrays.mergeSort(dest,src,mid,high,-off);if(sec.sun.awt.geom.Arrays.compare(src[mid-1],src[mid])<=0){System.arraycopy(src,low,dest,destLow,length);}
- for(i=destLow,p=low,q=mid;i<destHigh;i++){if(q>=high||p<mid&&sec.sun.awt.geom.Arrays.compare(src[p],src[q])<=0)
- dest[i]=src[p++];else dest[i]=src[q++];}};sec.sun.awt.geom.Arrays.arraycopy=function(src,srcPos,dest,destPos,length){var j=0;for(j=0;j<length;j++)
- dest[j+destPos]=src[srcPos+j];};sec.sun.awt.geom.Arrays.INSERTIONSORT_THRESHOLD=7;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.ChainEnd=function()
- {this.head=null;this.tail=null;this.partner=null;this.etag=0;var first=arguments[0];var partner=arguments[1];this.head=first;this.tail=first;this.partner=partner;this.etag=first.getEdgeTag();this.getChain=function(){return this.head;};this.setOtherEnd=function(partner){this.partner=partner;};this.getPartner=function(){return this.partner;};this.linkTo=function(that){if(this.etag===0||that.etag===0){throw new InternalError("ChainEnd linked more than once!");}
- if(this.etag===that.etag){throw new InternalError("Linking chains of the same type!");}
- var enter;var exit;if(this.etag===1){enter=this;exit=that;}else{enter=that;exit=this;}
- this.etag=0;that.etag=0;enter.tail.setNext(exit.head);enter.tail=exit.tail;if(this.partner===that){return enter.head;}
- var otherenter=exit.partner;var otherexit=enter.partner;otherenter.partner=otherexit;otherexit.partner=otherenter;if(enter.head.getYTop()<otherenter.head.getYTop()){enter.tail.setNext(otherenter.head);otherenter.head=enter.head;}else{otherexit.tail.setNext(enter.head);otherexit.tail=enter.tail;}
- return null;};this.addLink=function(newlink){if(this.etag===1){this.tail.setNext(newlink);this.tail=newlink;}else{newlink.setNext(this.head);this.head=newlink;}};this.getX=function(){if(this.etag===1){return this.tail.getXBot();}else{return this.head.getXBot();}};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Crossings=function()
- {this.limit=0;this.yranges=null;this.xlo=0;this.ylo=0;this.xhi=0;this.yhi=0;this.yranges=Clazz.newArray(10,0);var xlo=arguments[0];var ylo=arguments[1];var xhi=arguments[2];var yhi=arguments[3];this.xlo=xlo;this.ylo=ylo;this.xhi=xhi;this.yhi=yhi;this.getXLo=function(){return this.xlo;};this.getYLo=function(){return this.ylo;};this.getXHi=function(){return this.xhi;};this.getYHi=function(){return this.yhi;};this.isEmpty=function(){return(this.limit===0);};this.accumulateLine=function(x0,y0,x1,y1){if(y0<=y1){return this.accumulateLine2(x0,y0,x1,y1,1);}else{return this.accumulateLine2(x1,y1,x0,y0,-1);}};this.accumulateLine2=function(x0,y0,x1,y1,direction){if(this.yhi<=y0||this.ylo>=y1){return false;}
- if(x0>=this.xhi&&x1>=this.xhi){return false;}
- if(y0===y1){return(x0>=this.xlo||x1>=this.xlo);}
- var xstart;var ystart;var xend;var yend;var dx=(x1-x0);var dy=(y1-y0);if(y0<this.ylo){xstart=x0+(this.ylo-y0)*dx/dy;ystart=this.ylo;}else{xstart=x0;ystart=y0;}
- if(this.yhi<y1){xend=x0+(this.yhi-y0)*dx/dy;yend=this.yhi;}else{xend=x1;yend=y1;}
- if(xstart>=this.xhi&&xend>=this.xhi){return false;}
- if(xstart>this.xlo||xend>this.xlo){return true;}
- this.record(ystart,yend,direction);return false;};this.record=function(ystart,yend,direction){if(ystart>=yend){return;}
- var from=0;while(from<this.limit&&ystart>this.yranges[from+1]){from+=2;}
- var to=from;while(from<this.limit){var yrlo=this.yranges[from++];var yrhi=this.yranges[from++];if(yend<yrlo){this.yranges[to++]=ystart;this.yranges[to++]=yend;ystart=yrlo;yend=yrhi;continue;}
- var yll;var ylh;var yhl;var yhh;if(ystart<yrlo){yll=ystart;ylh=yrlo;}else{yll=yrlo;ylh=ystart;}
- if(yend<yrhi){yhl=yend;yhh=yrhi;}else{yhl=yrhi;yhh=yend;}
- if(ylh===yhl){ystart=yll;yend=yhh;}else{if(ylh>yhl){ystart=yhl;yhl=ylh;ylh=ystart;}
- if(yll!==ylh){this.yranges[to++]=yll;this.yranges[to++]=ylh;}
- ystart=yhl;yend=yhh;}
- if(ystart>=yend){break;}}
- if(to<from&&from<this.limit){System.arraycopy(this.yranges,from,this.yranges,to,this.limit-from);}
- to+=(this.limit-from);if(ystart<yend){if(to>=this.yranges.length){var newranges=Clazz.newArray(to+10,0);System.arraycopy(this.yranges,0,newranges,0,to);this.yranges=newranges;}
- this.yranges[to++]=ystart;this.yranges[to++]=yend;}
- this.limit=to;};};sec.sun.awt.geom.Crossings.debug=false;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.CrossingsObject=function()
- {this.limit=0;this.yranges=null;this.xlo=0;this.ylo=0;this.xhi=0;this.yhi=0;this.crosscounts=null;this.evenOdd=null;this.crossings=null;this.nonZero=null;this.type=-1;this.tmp=null;this.yranges=Clazz.newArray(10,0);this.tmp=new sec.sun.awt.geom.Vector();var xlo=arguments[0];var ylo=arguments[1];var xhi=arguments[2];var yhi=arguments[3];var type=arguments[4];this.xlo=xlo;this.ylo=ylo;this.xhi=xhi;this.yhi=yhi;this.type=type;switch(type){case 0:this.crossings=new sec.sun.awt.geom.Crossings(xlo,ylo,xhi,yhi);break;case 1:this.nonZero=new sec.sun.awt.geom.NonZero(xlo,ylo,xhi,yhi);this.crosscounts=Clazz.newArray(Math.floor(this.yranges.length/2),0);break;case 2:this.evenOdd=new sec.sun.awt.geom.EvenOdd(xlo,ylo,xhi,yhi);break;}
- this.getXLo=function(){switch(this.type){case 0:return this.crossings.getXLo();case 2:return this.evenOdd.getXLo();case 1:return this.nonZero.getXLo();default:return-1;}};this.getYLo=function(){switch(this.type){case 0:return this.crossings.getYLo();case 2:return this.evenOdd.getYLo();case 1:return this.nonZero.getYLo();default:return-1;}};this.getXHi=function(){switch(this.type){case 0:return this.crossings.getXHi();case 2:return this.evenOdd.getXHi();case 1:return this.nonZero.getXHi();default:return-1;}};this.getYHi=function(){switch(this.type){case 0:return this.crossings.getYHi();case 2:return this.evenOdd.getYHi();case 1:return this.nonZero.getYHi();default:return-1;}};this.isEmpty=function(){switch(this.type){case 0:return this.crossings.isEmpty();case 2:return this.evenOdd.isEmpty();case 1:return this.nonZero.isEmpty();default:return true;}};this.record=function(ystart,yend,direction){switch(this.type){case 0:this.crossings.record(ystart,yend,direction);case 2:this.evenOdd.record(ystart,yend,direction);case 1:this.nonZero.record(ystart,yend,direction);default:return;}};this.accumulateLine=function(x0,y0,x1,y1){switch(this.type){case 0:return this.crossings.accumulateLine(x0,y0,x1,y1);case 2:return this.evenOdd.accumulateLine(x0,y0,x1,y1);case 1:return this.nonZero.accumulateLine(x0,y0,x1,y1);default:return false;}};this.accumulateQuad=function(x0,y0,coords){if(y0<this.ylo&&coords[1]<this.ylo&&coords[3]<this.ylo){return false;}
- if(y0>this.yhi&&coords[1]>this.yhi&&coords[3]>this.yhi){return false;}
- if(x0>this.xhi&&coords[0]>this.xhi&&coords[2]>this.xhi){return false;}
- if(x0<this.xlo&&coords[0]<this.xlo&&coords[2]<this.xlo){if(y0<coords[3]){this.record(Math.max(y0,this.ylo),Math.min(coords[3],this.yhi),1);}else if(y0>coords[3]){this.record(Math.max(coords[3],this.ylo),Math.min(y0,this.yhi),-1);}
- return false;}
- sec.sun.awt.geom.Curve.insertQuad(this.tmp,x0,y0,coords);var enum_=this.tmp.elements();while(enum_.hasMoreElements()){var c=enum_.nextElement();if(c.accumulateCrossings(this)){return true;}}
- this.tmp.clear();return false;};this.accumulateCubic=function(x0,y0,coords){if(y0<this.ylo&&coords[1]<this.ylo&&coords[3]<this.ylo&&coords[5]<this.ylo){return false;}
- if(y0>this.yhi&&coords[1]>this.yhi&&coords[3]>this.yhi&&coords[5]>this.yhi){return false;}
- if(x0>this.xhi&&coords[0]>this.xhi&&coords[2]>this.xhi&&coords[4]>this.xhi){return false;}
- if(x0<this.xlo&&coords[0]<this.xlo&&coords[2]<this.xlo&&coords[4]<this.xlo){if(y0<=coords[5]){this.record(Math.max(y0,this.ylo),Math.min(coords[5],this.yhi),1);}else{this.record(Math.max(coords[5],this.ylo),Math.min(y0,this.yhi),-1);}
- return false;}
- sec.sun.awt.geom.Curve.insertCubic(this.tmp,x0,y0,coords);var enum_=this.tmp.elements();while(enum_.hasMoreElements()){var c=enum_.nextElement();if(c.accumulateCrossings(this)){return true;}}
- this.tmp.clear();return false;};};sec.sun.awt.geom.CrossingsObject.CROSSINGS=0;sec.sun.awt.geom.CrossingsObject.NONZERO=1;sec.sun.awt.geom.CrossingsObject.EVENODD=2;sec.sun.awt.geom.CrossingsObject.debug=false;sec.sun.awt.geom.CrossingsObject.findCrossings=function(curves,xlo,ylo,xhi,yhi){var cross=new sec.sun.awt.geom.CrossingsObject(xlo,ylo,xhi,yhi,2);var enum_=curves.elements();while(enum_.hasMoreElements()){var c=enum_.nextElement();if(c.accumulateCrossings(cross)){return null;}}
- return cross;};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Curve=function()
- {};sec.sun.awt.geom.Curve.insertMove=function(curves,x,y){curves.add(new sec.sun.awt.geom.Order0(x,y));};sec.sun.awt.geom.Curve.insertLine=function(curves,x0,y0,x1,y1){if(y0===y1)
- {return;}
- else if(y0<y1)
- {curves.add(new sec.sun.awt.geom.Order1(x0,y0,x1,y1,1));}
- else if(y0>y1)
- {curves.add(new sec.sun.awt.geom.Order1(x1,y1,x0,y0,-1));}};sec.sun.awt.geom.Curve.insertQuad=function(curves,x0,y0,coords){var y1=coords[3];if(y0>y1){sec.sun.awt.geom.Order2.insert(curves,coords,coords[2],y1,coords[0],coords[1],x0,y0,-1);}else if(y0===y1&&y0===coords[1]){return;}else{sec.sun.awt.geom.Order2.insert(curves,coords,x0,y0,coords[0],coords[1],coords[2],y1,1);}};sec.sun.awt.geom.Curve.insertCubic=function(curves,x0,y0,coords){var y1=coords[5];if(y0>y1){sec.sun.awt.geom.Order3.insert(curves,coords,coords[4],y1,coords[2],coords[3],coords[0],coords[1],x0,y0,-1);}else if(y0===y1&&y0===coords[1]&&y0===coords[3]){return;}else{sec.sun.awt.geom.Order3.insert(curves,coords,x0,y0,coords[0],coords[1],coords[2],coords[3],coords[4],y1,1);}};sec.sun.awt.geom.Curve.pointCrossingsForPath=function(pi,px,py){if(pi.isDone()){return 0;}
- var coords=Clazz.newArray(6,0);if(pi.currentSegment(coords)!==0){return-1;}
- pi.next();var movx=coords[0];var movy=coords[1];var curx=movx;var cury=movy;var endx;var endy;var crossings=0;while(!pi.isDone()){switch(pi.currentSegment(coords)){case 0:if(cury!==movy){crossings+=sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,curx,cury,movx,movy);}
- movx=curx=coords[0];movy=cury=coords[1];break;case 1:endx=coords[0];endy=coords[1];crossings+=sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,curx,cury,endx,endy);curx=endx;cury=endy;break;case 2:endx=coords[2];endy=coords[3];crossings+=sec.sun.awt.geom.Curve.pointCrossingsForQuad(px,py,curx,cury,coords[0],coords[1],endx,endy,0);curx=endx;cury=endy;break;case 3:endx=coords[4];endy=coords[5];crossings+=sec.sun.awt.geom.Curve.pointCrossingsForCubic(px,py,curx,cury,coords[0],coords[1],coords[2],coords[3],endx,endy,0);curx=endx;cury=endy;break;case 4:if(cury!==movy){crossings+=sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,curx,cury,movx,movy);}
- curx=movx;cury=movy;break;}
- pi.next();}
- if(cury!==movy){crossings+=sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,curx,cury,movx,movy);}
- return crossings;};sec.sun.awt.geom.Curve.pointCrossingsForLine=function(px,py,x0,y0,x1,y1){if(py<y0&&py<y1)
- return 0;if(py>=y0&&py>=y1)
- return 0;if(px>=x0&&px>=x1)
- return 0;if(px<x0&&px<x1)
- return(y0<y1)?1:-1;var xintercept=x0+(py-y0)*(x1-x0)/(y1-y0);if(px>=xintercept)
- return 0;return(y0<y1)?1:-1;};sec.sun.awt.geom.Curve.pointCrossingsForQuad=function(px,py,x0,y0,xc,yc,x1,y1,level){if(py<y0&&py<yc&&py<y1)
- return 0;if(py>=y0&&py>=yc&&py>=y1)
- return 0;if(px>=x0&&px>=xc&&px>=x1)
- return 0;if(px<x0&&px<xc&&px<x1){if(py>=y0){if(py<y1)
- return 1;}else{if(py>=y1)
- return-1;}
- return 0;}
- if(level>52)
- return sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,x0,y0,x1,y1);var x0c=(x0+xc)/2;var y0c=(y0+yc)/2;var xc1=(xc+x1)/2;var yc1=(yc+y1)/2;xc=(x0c+xc1)/2;yc=(y0c+yc1)/2;if(Double.isNaN(xc)||Double.isNaN(yc)){return 0;}
- return(sec.sun.awt.geom.Curve.pointCrossingsForQuad(px,py,x0,y0,x0c,y0c,xc,yc,level+1)+sec.sun.awt.geom.Curve.pointCrossingsForQuad(px,py,xc,yc,xc1,yc1,x1,y1,level+1));};sec.sun.awt.geom.Curve.pointCrossingsForCubic=function(px,py,x0,y0,xc0,yc0,xc1,yc1,x1,y1,level){if(py<y0&&py<yc0&&py<yc1&&py<y1)
- return 0;if(py>=y0&&py>=yc0&&py>=yc1&&py>=y1)
- return 0;if(px>=x0&&px>=xc0&&px>=xc1&&px>=x1)
- return 0;if(px<x0&&px<xc0&&px<xc1&&px<x1){if(py>=y0){if(py<y1)
- return 1;}else{if(py>=y1)
- return-1;}
- return 0;}
- if(level>52)
- return sec.sun.awt.geom.Curve.pointCrossingsForLine(px,py,x0,y0,x1,y1);var xmid=(xc0+xc1)/2;var ymid=(yc0+yc1)/2;xc0=(x0+xc0)/2;yc0=(y0+yc0)/2;xc1=(xc1+x1)/2;yc1=(yc1+y1)/2;var xc0m=(xc0+xmid)/2;var yc0m=(yc0+ymid)/2;var xmc1=(xmid+xc1)/2;var ymc1=(ymid+yc1)/2;xmid=(xc0m+xmc1)/2;ymid=(yc0m+ymc1)/2;if(Double.isNaN(xmid)||Double.isNaN(ymid)){return 0;}
- return(sec.sun.awt.geom.Curve.pointCrossingsForCubic(px,py,x0,y0,xc0,yc0,xc0m,yc0m,xmid,ymid,level+1)+sec.sun.awt.geom.Curve.pointCrossingsForCubic(px,py,xmid,ymid,xmc1,ymc1,xc1,yc1,x1,y1,level+1));};sec.sun.awt.geom.Curve.rectCrossingsforPath=function(pi,rxmin,rymin,rxmax,rymax){if(rxmax<=rxmin||rymax<=rymin){return 0;}
- if(pi.isDone()){return 0;}
- var coords=Clazz.newArray(6,0);if(pi.currentSegment(coords)!==0){return-1;}
- pi.next();var curx;var cury;var movx;var movy;var endx;var endy;curx=movx=coords[0];cury=movy=coords[1];var crossings=0;while(crossings!==-2147483648&&!pi.isDone()){switch(pi.currentSegment(coords)){case 0:if(curx!==movx||cury!==movy){crossings=sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,curx,cury,movx,movy);}
- movx=curx=coords[0];movy=cury=coords[1];break;case 1:endx=coords[0];endy=coords[1];crossings=sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,curx,cury,endx,endy);curx=endx;cury=endy;break;case 2:endx=coords[2];endy=coords[3];crossings=sec.sun.awt.geom.Curve.rectCrossingsForQuad(crossings,rxmin,rymin,rxmax,rymax,curx,cury,coords[0],coords[1],endx,endy,0);curx=endx;cury=endy;break;case 3:endx=coords[4];endy=coords[5];crossings=sec.sun.awt.geom.Curve.rectCrossingsForCubic(crossings,rxmin,rymin,rxmax,rymax,curx,cury,coords[0],coords[1],coords[2],coords[3],endx,endy,0);curx=endx;cury=endy;break;case 4:if(curx!==movx||cury!==movy){crossings=sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,curx,cury,movx,movy);}
- curx=movx;cury=movy;break;}
- pi.next();}
- if(crossings!==-2147483648&&(curx!==movx||cury!==movy)){crossings=sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,curx,cury,movx,movy);}
- return crossings;};sec.sun.awt.geom.Curve.rectCrossingsForLine=function(crossings,rxmin,rymin,rxmax,rymax,x0,y0,x1,y1){if(y0>=rymax&&y1>=rymax)
- return crossings;if(y0<=rymin&&y1<=rymin)
- return crossings;if(x0<=rxmin&&x1<=rxmin)
- return crossings;if(x0>=rxmax&&x1>=rxmax){if(y0<y1){if(y0<=rymin)
- crossings++;if(y1>=rymax)
- crossings++;}else if(y1<y0){if(y1<=rymin)
- crossings--;if(y0>=rymax)
- crossings--;}
- return crossings;}
- if((x0>rxmin&&x0<rxmax&&y0>rymin&&y0<rymax)||(x1>rxmin&&x1<rxmax&&y1>rymin&&y1<rymax)){return-2147483648;}
- var xi0=x0;if(y0<rymin){xi0+=((rymin-y0)*(x1-x0)/(y1-y0));}else if(y0>rymax){xi0+=((rymax-y0)*(x1-x0)/(y1-y0));}
- var xi1=x1;if(y1<rymin){xi1+=((rymin-y1)*(x0-x1)/(y0-y1));}else if(y1>rymax){xi1+=((rymax-y1)*(x0-x1)/(y0-y1));}
- if(xi0<=rxmin&&xi1<=rxmin)
- return crossings;if(xi0>=rxmax&&xi1>=rxmax){if(y0<y1){if(y0<=rymin)
- crossings++;if(y1>=rymax)
- crossings++;}else if(y1<y0){if(y1<=rymin)
- crossings--;if(y0>=rymax)
- crossings--;}
- return crossings;}
- return-2147483648;};sec.sun.awt.geom.Curve.rectCrossingsForQuad=function(crossings,rxmin,rymin,rxmax,rymax,x0,y0,xc,yc,x1,y1,level){if(y0>=rymax&&yc>=rymax&&y1>=rymax)
- return crossings;if(y0<=rymin&&yc<=rymin&&y1<=rymin)
- return crossings;if(x0<=rxmin&&xc<=rxmin&&x1<=rxmin)
- return crossings;if(x0>=rxmax&&xc>=rxmax&&x1>=rxmax){if(y0<y1){if(y0<=rymin&&y1>rymin)
- crossings++;if(y0<rymax&&y1>=rymax)
- crossings++;}else if(y1<y0){if(y1<=rymin&&y0>rymin)
- crossings--;if(y1<rymax&&y0>=rymax)
- crossings--;}
- return crossings;}
- if((x0<rxmax&&x0>rxmin&&y0<rymax&&y0>rymin)||(x1<rxmax&&x1>rxmin&&y1<rymax&&y1>rymin)){return-2147483648;}
- if(level>52){return sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,x0,y0,x1,y1);}
- var x0c=(x0+xc)/2;var y0c=(y0+yc)/2;var xc1=(xc+x1)/2;var yc1=(yc+y1)/2;xc=(x0c+xc1)/2;yc=(y0c+yc1)/2;if(Double.isNaN(xc)||Double.isNaN(yc)){return 0;}
- crossings=sec.sun.awt.geom.Curve.rectCrossingsForQuad(crossings,rxmin,rymin,rxmax,rymax,x0,y0,x0c,y0c,xc,yc,level+1);if(crossings!==-2147483648){crossings=sec.sun.awt.geom.Curve.rectCrossingsForQuad(crossings,rxmin,rymin,rxmax,rymax,xc,yc,xc1,yc1,x1,y1,level+1);}
- return crossings;};sec.sun.awt.geom.Curve.rectCrossingsForCubic=function(crossings,rxmin,rymin,rxmax,rymax,x0,y0,xc0,yc0,xc1,yc1,x1,y1,level){if(y0>=rymax&&yc0>=rymax&&yc1>=rymax&&y1>=rymax){return crossings;}
- if(y0<=rymin&&yc0<=rymin&&yc1<=rymin&&y1<=rymin){return crossings;}
- if(x0<=rxmin&&xc0<=rxmin&&xc1<=rxmin&&x1<=rxmin){return crossings;}
- if(x0>=rxmax&&xc0>=rxmax&&xc1>=rxmax&&x1>=rxmax){if(y0<y1){if(y0<=rymin&&y1>rymin)
- crossings++;if(y0<rymax&&y1>=rymax)
- crossings++;}else if(y1<y0){if(y1<=rymin&&y0>rymin)
- crossings--;if(y1<rymax&&y0>=rymax)
- crossings--;}
- return crossings;}
- if((x0>rxmin&&x0<rxmax&&y0>rymin&&y0<rymax)||(x1>rxmin&&x1<rxmax&&y1>rymin&&y1<rymax)){return-2147483648;}
- if(level>52){return sec.sun.awt.geom.Curve.rectCrossingsForLine(crossings,rxmin,rymin,rxmax,rymax,x0,y0,x1,y1);}
- var xmid=(xc0+xc1)/2;var ymid=(yc0+yc1)/2;xc0=(x0+xc0)/2;yc0=(y0+yc0)/2;xc1=(xc1+x1)/2;yc1=(yc1+y1)/2;var xc0m=(xc0+xmid)/2;var yc0m=(yc0+ymid)/2;var xmc1=(xmid+xc1)/2;var ymc1=(ymid+yc1)/2;xmid=(xc0m+xmc1)/2;ymid=(yc0m+ymc1)/2;if(Double.isNaN(xmid)||Double.isNaN(ymid)){return 0;}
- crossings=sec.sun.awt.geom.Curve.rectCrossingsForCubic(crossings,rxmin,rymin,rxmax,rymax,x0,y0,xc0,yc0,xc0m,yc0m,xmid,ymid,level+1);if(crossings!==-2147483648){crossings=sec.sun.awt.geom.Curve.rectCrossingsForCubic(crossings,rxmin,rymin,rxmax,rymax,xmid,ymid,xmc1,ymc1,xc1,yc1,x1,y1,level+1);}
- return crossings;};sec.sun.awt.geom.Curve.round=function(v){return v;};sec.sun.awt.geom.Curve.orderof=function(x1,x2){if(x1<x2){return-1;}
- if(x1>x2){return 1;}
- return 0;};sec.sun.awt.geom.Curve.signeddifbits=function(y1,y2){return(Double.doubleToLongBits(y1)-Double.doubleToLongBits(y2));};sec.sun.awt.geom.Curve.diffbits=function(y1,y2){return Math.abs(Double.doubleToLongBits(y1)-Double.doubleToLongBits(y2));};sec.sun.awt.geom.Curve.prev=function(v){return Double.longBitsToDouble(Double.doubleToLongBits(v)-1);};sec.sun.awt.geom.Curve.next=function(v){return Double.longBitsToDouble(Double.doubleToLongBits(v)+1);};sec.sun.awt.geom.Curve.fairlyClose=function(v1,v2){return(Math.abs(v1-v2)<Math.max(Math.abs(v1),Math.abs(v2))*1E-10);};sec.sun.awt.geom.Curve.solveQuadratic=function(eqn,res){var a=eqn[2];var b=eqn[1];var c=eqn[0];var roots=0;if(a===0.0){if(b===0.0){return-1;}
- res[roots++]=-c/b;}else{var d=b*b-4.0*a*c;if(d<0.0){return 0;}
- d=Math.sqrt(d);if(b<0.0){d=-d;}
- var q=(b+d)/-2.0;res[roots++]=q/a;if(q!==0.0){res[roots++]=c/q;}}
- return roots;};sec.sun.awt.geom.Curve.INCREASING=1;sec.sun.awt.geom.Curve.DECREASING=-1;sec.sun.awt.geom.Curve.RECT_INTERSECTS=0x80000000;sec.sun.awt.geom.Curve.TMIN=1E-3;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.CurveObject=function()
- {this.order0=null;this.order1=null;this.order2=null;this.order3=null;this.order=-1;this.setParent=function()
- {switch(this.order){case 0:this.order0.setParent(this);break;case 1:this.order1.setParent(this);break;case 2:this.order2.setParent(this);break;case 3:this.order3.setParent(this);break;default:break;}
- return;}
- var obj=arguments[0];if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order0)){this.order0=obj;this.order=0;}else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order1)){this.order1=obj;this.order=1;}else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order2)){this.order2=obj;this.order=2;}else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order3)){this.order3=obj;this.order=3;}
- this.setParent();this.getCurve=function(){switch(this.order){case 0:return this.order0;case 1:return this.order1;case 2:return this.order2;case 3:return this.order3;default:return null;}};this.getOrder=function(){return this.order;};this.getXTop=function(){switch(this.order){case 0:return this.order0.getXTop();case 1:return this.order1.getXTop();case 2:return this.order2.getXTop();case 3:return this.order3.getXTop();default:return-7;}};this.getYTop=function(){switch(this.order){case 0:return this.order0.getYTop();case 1:return this.order1.getYTop();case 2:return this.order2.getYTop();case 3:return this.order3.getYTop();default:return-7;}};this.getXBot=function(){switch(this.order){case 0:return this.order0.getXBot();case 1:return this.order1.getXBot();case 2:return this.order2.getXBot();case 3:return this.order3.getXBot();default:return-7;}};this.getYBot=function(){switch(this.order){case 0:return this.order0.getYBot();case 1:return this.order1.getYBot();case 2:return this.order2.getYBot();case 3:return this.order3.getYBot();default:return-7;}};this.getXMin=function(){switch(this.order){case 0:return this.order0.getXMin();case 1:return this.order1.getXMin();case 2:return this.order2.getXMin();case 3:return this.order3.getXMin();default:return-7;}};this.getXMax=function(){switch(this.order){case 0:return this.order0.getXMax();case 1:return this.order1.getXMax();case 2:return this.order2.getXMax();case 3:return this.order3.getXMax();default:return-7;}};this.getDirection=function(){switch(this.order){case 0:return this.order0.direction;case 1:return this.order1.direction;case 2:return this.order2.direction;case 3:return this.order3.direction;default:return-1;}};this.XforY=function(y){switch(this.order){case 0:return this.order0.XforY(y);case 1:return this.order1.XforY(y);case 2:return this.order2.XforY(y);case 3:return this.order3.XforY(y);default:return-7;}};this.getReversedCurve=function(){switch(this.order){case 0:return this.order0.getReversedCurve();case 1:return this.order1.getReversedCurve();case 2:return this.order2.getReversedCurve();case 3:return this.order3.getReversedCurve();default:return null;}};this.getX0=function(){switch(this.order){case 0:return this.order0.getX0();case 1:return this.order1.getX0();case 2:return this.order2.getX0();case 3:return this.order3.getX0();default:return-7;}};this.getY0=function(){switch(this.order){case 0:return this.order0.getY0();case 1:return this.order1.getY0();case 2:return this.order2.getY0();case 3:return this.order3.getY0();default:return-7;}};this.getX1=function(){switch(this.order){case 0:return this.order0.getX1();case 1:return this.order1.getX1();case 2:return this.order2.getX1();case 3:return this.order3.getX1();default:return-7;}};this.getY1=function(){switch(this.order){case 0:return this.order0.getY1();case 1:return this.order1.getY1();case 2:return this.order2.getY1();case 3:return this.order3.getY1();default:return-7;}};this.XforT=function(t){switch(this.order){case 0:return this.order0.XforT(t);case 1:return this.order1.XforT(t);case 2:return this.order2.XforT(t);case 3:return this.order3.XforT(t);default:return-7;}};this.YforT=function(t){switch(this.order){case 0:return this.order0.YforT(t);case 1:return this.order1.YforT(t);case 2:return this.order2.YforT(t);case 3:return this.order3.YforT(t);default:return-7;}};this.TforY=function(t){switch(this.order){case 0:return this.order0.TforY(t);case 1:return this.order1.TforY(t);case 2:return this.order2.TforY(t);case 3:return this.order3.TforY(t);default:return-7;}};this.nextVertical=function(t0,t1){switch(this.order){case 0:return this.order0.nextVertical(t0,t1);case 1:return this.order1.nextVertical(t0,t1);case 2:return this.order2.nextVertical(t0,t1);case 3:return this.order3.nextVertical(t0,t1);default:return-7;}};this.controlPointString=function(){switch(this.order){case 0:return"";case 1:return"";case 2:return this.order2.controlPointString();case 3:return this.order3.controlPointString();default:return"";}};this.toString=function(){return("Curve["+this.getOrder()+", "+("("+sec.sun.awt.geom.Curve.round(this.getX0())+", "+sec.sun.awt.geom.Curve.round(this.getY0())+"), ")+this.controlPointString()+("("+sec.sun.awt.geom.Curve.round(this.getX1())+", "+sec.sun.awt.geom.Curve.round(this.getY1())+"), ")+(this.getDirection()===1?"D":"U")+"]");};this.crossingsFor=function(x,y){if(y>=this.getYTop()&&y<this.getYBot()){if(x<this.getXMax()&&(x<this.getXMin()||x<this.XforY(y))){return 1;}}
- return 0;};this.accumulateCrossings=function(c){var xhi=c.getXHi();if(this.getXMin()>=xhi){return false;}
- var xlo=c.getXLo();var ylo=c.getYLo();var yhi=c.getYHi();var y0=this.getYTop();var y1=this.getYBot();var tstart;var ystart;var tend;var yend;if(y0<ylo){if(y1<=ylo){return false;}
- ystart=ylo;tstart=this.TforY(ylo);}else{if(y0>=yhi){return false;}
- ystart=y0;tstart=0;}
- if(y1>yhi){yend=yhi;tend=this.TforY(yhi);}else{yend=y1;tend=1;}
- var hitLo=false;var hitHi=false;while(true){var x=this.XforT(tstart);if(x<xhi){if(hitHi||x>xlo){return true;}
- hitLo=true;}else{if(hitLo){return true;}
- hitHi=true;}
- if(tstart>=tend){break;}
- tstart=this.nextVertical(tstart,tend);}
- if(hitLo){c.record(ystart,yend,this.getDirection());}
- return false;};this.refineTforY=function(t0,yt0,y0){var t1=1;while(true){var th=(t0+t1)/2;if(th===t0||th===t1){return t1;}
- var y=this.YforT(th);if(y<y0){t0=th;yt0=y;}else if(y>y0){t1=th;}else{return t1;}}};this.findIntersect=function(that,yrange,ymin,slevel,tlevel,s0,xs0,ys0,s1,xs1,ys1,t0,xt0,yt0,t1,xt1,yt1){if(ys0>yt1||yt0>ys1){return false;}
- if(Math.min(xs0,xs1)>Math.max(xt0,xt1)||Math.max(xs0,xs1)<Math.min(xt0,xt1)){return false;}
- if(s1-s0>0.0010){var s=(s0+s1)/2;var xs=this.XforT(s);var ys=this.YforT(s);if(s===s0||s===s1){System.out.println("s0 = "+s0);System.out.println("s1 = "+s1);throw new InternalError("no s progress!");}
- if(t1-t0>0.0010){var t=(t0+t1)/2;var xt=that.XforT(t);var yt=that.YforT(t);if(t===t0||t===t1){System.out.println("t0 = "+t0);System.out.println("t1 = "+t1);throw new InternalError("no t progress!");}
- if(ys>=yt0&&yt>=ys0){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel+1,s0,xs0,ys0,s,xs,ys,t0,xt0,yt0,t,xt,yt)){return true;}}
- if(ys>=yt){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel+1,s0,xs0,ys0,s,xs,ys,t,xt,yt,t1,xt1,yt1)){return true;}}
- if(yt>=ys){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel+1,s,xs,ys,s1,xs1,ys1,t0,xt0,yt0,t,xt,yt)){return true;}}
- if(ys1>=yt&&yt1>=ys){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel+1,s,xs,ys,s1,xs1,ys1,t,xt,yt,t1,xt1,yt1)){return true;}}}else{if(ys>=yt0){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel,s0,xs0,ys0,s,xs,ys,t0,xt0,yt0,t1,xt1,yt1)){return true;}}
- if(yt1>=ys){if(this.findIntersect(that,yrange,ymin,slevel+1,tlevel,s,xs,ys,s1,xs1,ys1,t0,xt0,yt0,t1,xt1,yt1)){return true;}}}}else if(t1-t0>0.0010){var t=(t0+t1)/2;var xt=that.XforT(t);var yt=that.YforT(t);if(t===t0||t===t1){System.out.println("t0 = "+t0);System.out.println("t1 = "+t1);throw new InternalError("no t progress!");}
- if(yt>=ys0){if(this.findIntersect(that,yrange,ymin,slevel,tlevel+1,s0,xs0,ys0,s1,xs1,ys1,t0,xt0,yt0,t,xt,yt)){return true;}}
- if(ys1>=yt){if(this.findIntersect(that,yrange,ymin,slevel,tlevel+1,s0,xs0,ys0,s1,xs1,ys1,t,xt,yt,t1,xt1,yt1)){return true;}}}else{var xlk=xs1-xs0;var ylk=ys1-ys0;var xnm=xt1-xt0;var ynm=yt1-yt0;var xmk=xt0-xs0;var ymk=yt0-ys0;var det=xnm*ylk-ynm*xlk;if(det!==0){var detinv=1/det;var s=(xnm*ymk-ynm*xmk)*detinv;var t=(xlk*ymk-ylk*xmk)*detinv;if(s>=0&&s<=1&&t>=0&&t<=1){s=s0+s*(s1-s0);t=t0+t*(t1-t0);if(s<0||s>1||t<0||t>1){System.out.println("Uh oh!");}
- var y=(this.YforT(s)+that.YforT(t))/2;if(y<=yrange[1]&&y>yrange[0]){yrange[1]=y;return true;}}}}
- return false;};this.compareTo=function(that,yrange){if(this.order===1){return this.order1.compareTo(that,yrange);}
- var y0=yrange[0];var y1=yrange[1];y1=Math.min(Math.min(y1,this.getYBot()),that.getYBot());if(y1<=yrange[0]){System.err.println("this === "+this);System.err.println("that === "+that);System.out.println("target range = "+yrange[0]+"=>"+yrange[1]);throw new InternalError("backstepping from "+yrange[0]+" to "+y1);}
- yrange[1]=y1;if(this.getXMax()<=that.getXMin()){if(this.getXMin()===that.getXMax()){return 0;}
- return-1;}
- if(this.getXMin()>=that.getXMax()){return 1;}
- var s0=this.TforY(y0);var ys0=this.YforT(s0);if(ys0<y0){s0=this.refineTforY(s0,ys0,y0);ys0=this.YforT(s0);}
- var s1=this.TforY(y1);if(this.YforT(s1)<y0){s1=this.refineTforY(s1,this.YforT(s1),y0);}
- var t0=that.TforY(y0);var yt0=that.YforT(t0);if(yt0<y0){t0=that.refineTforY(t0,yt0,y0);yt0=that.YforT(t0);}
- var t1=that.TforY(y1);if(that.YforT(t1)<y0){t1=that.refineTforY(t1,that.YforT(t1),y0);}
- var xs0=this.XforT(s0);var xt0=that.XforT(t0);var scale=Math.max(Math.abs(y0),Math.abs(y1));var ymin=Math.max(scale*1E-14,1E-300);if(sec.sun.awt.geom.Curve.fairlyClose(xs0,xt0)){var bump=ymin;var maxbump=Math.min(ymin*1E13,(y1-y0)*.1);var y=y0+bump;while(y<=y1){if(sec.sun.awt.geom.Curve.fairlyClose(this.XforY(y),that.XforY(y))){if((bump*=2)>maxbump){bump=maxbump;}}else{y-=bump;while(true){bump/=2;var newy=y+bump;if(newy<=y){break;}
- if(sec.sun.awt.geom.Curve.fairlyClose(this.XforY(newy),that.XforY(newy))){y=newy;}}
- break;}
- y+=bump;}
- if(y>y0){if(y<y1){yrange[1]=y;}
- return 0;}}
- if(ymin<=0){System.out.println("ymin = "+ymin);}
- while(s0<s1&&t0<t1){var sh=this.nextVertical(s0,s1);var xsh=this.XforT(sh);var ysh=this.YforT(sh);var th=that.nextVertical(t0,t1);var xth=that.XforT(th);var yth=that.YforT(th);try{if(this.findIntersect(that,yrange,ymin,0,0,s0,xs0,ys0,sh,xsh,ysh,t0,xt0,yt0,th,xth,yth)){break;}}catch(t){if(Clazz.instanceOf(t,Throwable)){System.err.println("Error: "+t);System.err.println("y range was "+yrange[0]+"=>"+yrange[1]);System.err.println("s y range is "+ys0+"=>"+ysh);System.err.println("t y range is "+yt0+"=>"+yth);System.err.println("ymin is "+ymin);return 0;}else{throw t;}}
- if(ysh<yth){if(ysh>yrange[0]){if(ysh<yrange[1]){yrange[1]=ysh;}
- break;}
- s0=sh;xs0=xsh;ys0=ysh;}else{if(yth>yrange[0]){if(yth<yrange[1]){yrange[1]=yth;}
- break;}
- t0=th;xt0=xth;yt0=yth;}}
- var ymid=(yrange[0]+yrange[1])/2;return sec.sun.awt.geom.Curve.orderof(this.XforY(ymid),that.XforY(ymid));};this.getSegment=function(coords){switch(this.order){case 0:return this.order0.getSegment(coords);case 1:return this.order1.getSegment(coords);case 2:return this.order2.getSegment(coords);case 3:return this.order3.getSegment(coords);default:return-7;}};this.getSubCurve=function(ystart,yend,dir){switch(this.order){case 0:return this.order0.getSubCurve(ystart,yend,dir);case 1:return this.order1.getSubCurve(ystart,yend,dir);case 2:return this.order2.getSubCurve(ystart,yend,dir);case 3:return this.order3.getSubCurve(ystart,yend,dir);default:return null;}};this.enlarge=function(r){switch(this.order){case 0:this.order0.enlarge(r);case 1:this.order1.enlarge(r);case 2:this.order2.enlarge(r);case 3:this.order3.enlarge(r);default:return;}};this.getWithDirection=function(direction){switch(this.order){case 0:return this.order0.getWithDirection(direction);case 1:return this.order1.getWithDirection(direction);case 2:return this.order2.getWithDirection(direction);case 3:return this.order3.getWithDirection(direction);default:return null;}};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.CurveLink=function()
- {this.curve=null;this.ytop=0;this.ybot=0;this.etag=0;this.next=null;var curve=arguments[0];var ystart=arguments[1];var yend=arguments[2];var etag=arguments[3];this.curve=curve;this.ytop=ystart;this.ybot=yend;this.etag=etag;if(this.ytop<curve.getYTop()||this.ybot>curve.getYBot()){throw new InternalError("bad curvelink ["+this.ytop+"=>"+this.ybot+"] for "+curve);}
- this.absorb=function(link){return this.absorb2(link.curve,link.ytop,link.ybot,link.etag);};this.absorb2=function(curve,ystart,yend,etag){if(this.curve!==curve||this.etag!==etag||this.ybot<ystart||this.ytop>yend)
- {return false;}
- if(ystart<curve.getYTop()||yend>curve.getYBot())
- {throw new InternalError("bad curvelink ["+ystart+"=>"+yend+"] for "+curve);}
- this.ytop=Math.min(this.ytop,ystart);this.ybot=Math.max(this.ybot,yend);return true;};this.isEmpty=function(){return(this.ytop===this.ybot);};this.getCurve=function(){return this.curve;};this.getSubCurve=function(){if(this.ytop===this.curve.getYTop()&&this.ybot===this.curve.getYBot())
- {return this.curve.getWithDirection(this.etag);}
- return this.curve.getSubCurve(this.ytop,this.ybot,this.etag);};this.getMoveto=function(){var order0=new sec.sun.awt.geom.Order0(this.getXTop(),this.getYTop());return new sec.sun.awt.geom.CurveObject(order0);};this.getXTop=function(){return this.curve.XforY(this.ytop);};this.getYTop=function(){return this.ytop;};this.getXBot=function(){return this.curve.XforY(this.ybot);};this.getYBot=function(){return this.ybot;};this.getX=function(){return this.curve.XforY(this.ytop);};this.getEdgeTag=function(){return this.etag;};this.setNext=function(link){this.next=link;};this.getNext=function(){return this.next;};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.EOWindOp=function()
- {this.inside=false;this.newRow=function(){this.inside=false;};this.classify=function(e){var newInside=!this.inside;this.inside=newInside;return(newInside?1:-1);};this.getState=function(){return(this.inside?1:-1);};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.NZWindOp=function()
- {this.count=0;this.newRow=function(){this.count=0;};this.classify=function(e){var newCount=this.count;var type=(newCount===0?1:0);newCount+=e.getCurve().getDirection();this.count=newCount;return(newCount===0?-1:type);};this.getState=function(){return((this.count===0)?-1:1);};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Edge=function()
- {this.curve=null;this.ctag=0;this.etag=0;this.activey=0;this.equivalence=0;this.lastEdge=null;this.lastResult=0;this.lastLimit=0;var c=arguments[0];var ctag=arguments[1];var etag=0;if(arguments.length===3)
- etag=arguments[2];this.curve=c;this.ctag=ctag;this.etag=etag;this.getCurve=function(){return this.curve;};this.getCurveTag=function(){return this.ctag;};this.getEdgeTag=function(){return this.etag;};this.setEdgeTag=function(etag){this.etag=etag;};this.getEquivalence=function(){return this.equivalence;};this.setEquivalence=function(eq){this.equivalence=eq;};this.compareTo=function(other,yrange){if(other===this.lastEdge&&yrange[0]<this.lastLimit){if(yrange[1]>this.lastLimit){yrange[1]=this.lastLimit;}
- return this.lastResult;}
- if(this===other.lastEdge&&yrange[0]<other.lastLimit){if(yrange[1]>other.lastLimit){yrange[1]=other.lastLimit;}
- return 0-other.lastResult;}
- var ret=this.curve.compareTo(other.curve,yrange);this.lastEdge=other;this.lastLimit=yrange[1];this.lastResult=ret;return ret;};this.record=function(yend,etag){this.activey=yend;this.etag=etag;};this.isActiveFor=function(y,etag){return(this.etag===etag&&this.activey>=y);};this.toString=function(){return("Edge["+this.curve+", "+(this.ctag===0?"L":"R")+", "+(this.etag===1?"I":(this.etag===-1?"O":"N"))+"]");};};sec.sun.awt.geom.Edge.INIT_PARTS=4;sec.sun.awt.geom.Edge.GROW_PARTS=10;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Enumeration=function()
- {this._vector=null;this.currentIndex=0;var vector=arguments[0];this._vector=vector;this.nextElement=function(){if(this.currentIndex<this._vector.size())
- return this._vector.get(this.currentIndex++);else
- return null;};this.hasMoreElements=function(){if(this.currentIndex<this._vector.size())
- return true;else
- return false;};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.EvenOdd=function()
- {this.limit=0;this.yranges=null;this.xlo=0;this.ylo=0;this.xhi=0;this.yhi=0;this.yranges=Clazz.newArray(10,0);var xlo=arguments[0];var ylo=arguments[1];var xhi=arguments[2];var yhi=arguments[3];this.xlo=xlo;this.ylo=ylo;this.xhi=xhi;this.yhi=yhi;this.covers=function(ystart,yend){return(this.limit===2&&this.yranges[0]<=ystart&&this.yranges[1]>=yend);};this.record=function(ystart,yend,direction){if(ystart>=yend){return;}
- var from=0;while(from<this.limit&&ystart>this.yranges[from+1]){from+=2;}
- var to=from;while(from<this.limit){var yrlo=this.yranges[from++];var yrhi=this.yranges[from++];if(yend<yrlo){this.yranges[to++]=ystart;this.yranges[to++]=yend;ystart=yrlo;yend=yrhi;continue;}
- var yll;var ylh;var yhl;var yhh;if(ystart<yrlo){yll=ystart;ylh=yrlo;}else{yll=yrlo;ylh=ystart;}
- if(yend<yrhi){yhl=yend;yhh=yrhi;}else{yhl=yrhi;yhh=yend;}
- if(ylh===yhl){ystart=yll;yend=yhh;}else{if(ylh>yhl){ystart=yhl;yhl=ylh;ylh=ystart;}
- if(yll!==ylh){this.yranges[to++]=yll;this.yranges[to++]=ylh;}
- ystart=yhl;yend=yhh;}
- if(ystart>=yend){break;}}
- if(to<from&&from<this.limit){System.arraycopy(this.yranges,from,this.yranges,to,this.limit-from);}
- to+=(this.limit-from);if(ystart<yend){if(to>=this.yranges.length){var newranges=Clazz.newArray(to+10,0);System.arraycopy(this.yranges,0,newranges,0,to);this.yranges=newranges;}
- this.yranges[to++]=ystart;this.yranges[to++]=yend;}
- this.limit=to;};this.getXLo=function(){return this.xlo;};this.getYLo=function(){return this.ylo;};this.getXHi=function(){return this.xhi;};this.getYHi=function(){return this.yhi;};this.isEmpty=function(){return(this.limit===0);};this.accumulateLine=function(x0,y0,x1,y1){if(y0<=y1){return this.accumulateLine2(x0,y0,x1,y1,1);}else{return this.accumulateLine2(x1,y1,x0,y0,-1);}};this.accumulateLine2=function(x0,y0,x1,y1,direction){if(this.yhi<=y0||this.ylo>=y1){return false;}
- if(x0>=this.xhi&&x1>=this.xhi){return false;}
- if(y0===y1){return(x0>=this.xlo||x1>=this.xlo);}
- var xstart;var ystart;var xend;var yend;var dx=(x1-x0);var dy=(y1-y0);if(y0<this.ylo){xstart=x0+(this.ylo-y0)*dx/dy;ystart=this.ylo;}else{xstart=x0;ystart=y0;}
- if(this.yhi<y1){xend=x0+(this.yhi-y0)*dx/dy;yend=this.yhi;}else{xend=x1;yend=y1;}
- if(xstart>=this.xhi&&xend>=this.xhi){return false;}
- if(xstart>this.xlo||xend>this.xlo){return true;}
- this.record(ystart,yend,direction);return false;};};sec.sun.awt.geom.EvenOdd.debug=false;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.NonZero=function()
- {this.limit=0;this.yranges=null;this.xlo=0;this.ylo=0;this.xhi=0;this.yhi=0;this.crosscounts=null;this.yranges=Clazz.newArray(10,0);var xlo=arguments[0];var ylo=arguments[1];var xhi=arguments[2];var yhi=arguments[3];this.xlo=xlo;this.ylo=ylo;this.xhi=xhi;this.yhi=yhi;this.crosscounts=Clazz.newArray(Math.floor(this.yranges.length/2),0);this.covers=function(ystart,yend){var i=0;while(i<this.limit){var ylo=this.yranges[i++];var yhi=this.yranges[i++];if(ystart>=yhi){continue;}
- if(ystart<ylo){return false;}
- if(yend<=yhi){return true;}
- ystart=yhi;}
- return(ystart>=yend);};this.remove=function(cur){this.limit-=2;var rem=this.limit-cur;if(rem>0){System.arraycopy(this.yranges,cur+2,this.yranges,cur,rem);System.arraycopy(this.crosscounts,Math.floor(cur/2)+1,this.crosscounts,Math.floor(cur/2),Math.floor(rem/2));}};this.insert=function(cur,lo,hi,dir){var rem=this.limit-cur;var oldranges=this.yranges;var oldcounts=this.crosscounts;if(this.limit>=this.yranges.length){this.yranges=Clazz.newArray(this.limit+10,0);System.arraycopy(oldranges,0,this.yranges,0,cur);this.crosscounts=Clazz.newArray(Math.floor((this.limit+10)/2),0);System.arraycopy(oldcounts,0,this.crosscounts,0,Math.floor(cur/2));}
- if(rem>0){System.arraycopy(oldranges,cur,this.yranges,cur+2,rem);System.arraycopy(oldcounts,Math.floor(cur/2),this.crosscounts,Math.floor(cur/2)+1,Math.floor(rem/2));}
- this.yranges[cur+0]=lo;this.yranges[cur+1]=hi;this.crosscounts[Math.floor(cur/2)]=dir;this.limit+=2;};this.record=function(ystart,yend,direction){if(ystart>=yend){return;}
- var cur=0;while(cur<this.limit&&ystart>this.yranges[cur+1]){cur+=2;}
- if(cur<this.limit){var rdir=this.crosscounts[Math.floor(cur/2)];var yrlo=this.yranges[cur+0];var yrhi=this.yranges[cur+1];if(yrhi===ystart&&rdir===direction){if(cur+2===this.limit){this.yranges[cur+1]=yend;return;}
- this.remove(cur);ystart=yrlo;rdir=this.crosscounts[Math.floor(cur/2)];yrlo=this.yranges[cur+0];yrhi=this.yranges[cur+1];}
- if(yend<yrlo){this.insert(cur,ystart,yend,direction);return;}
- if(yend===yrlo&&rdir===direction){this.yranges[cur]=ystart;return;}
- if(ystart<yrlo){this.insert(cur,ystart,yrlo,direction);cur+=2;ystart=yrlo;}else if(yrlo<ystart){this.insert(cur,yrlo,ystart,rdir);cur+=2;yrlo=ystart;}
- var newdir=rdir+direction;var newend=Math.min(yend,yrhi);if(newdir===0){this.remove(cur);}else{this.crosscounts[Math.floor(cur/2)]=newdir;this.yranges[cur++]=ystart;this.yranges[cur++]=newend;}
- ystart=yrlo=newend;if(yrlo<yrhi){this.insert(cur,yrlo,yrhi,rdir);}}
- if(ystart<yend){this.insert(cur,ystart,yend,direction);}};this.getXLo=function(){return this.xlo;};this.getYLo=function(){return this.ylo;};this.getXHi=function(){return this.xhi;};this.getYHi=function(){return this.yhi;};this.isEmpty=function(){return(this.limit===0);};this.accumulateLine=function(x0,y0,x1,y1){if(y0<=y1){return this.accumulateLine2(x0,y0,x1,y1,1);}else{return this.accumulateLine2(x1,y1,x0,y0,-1);}};this.accumulateLine2=function(x0,y0,x1,y1,direction){if(this.yhi<=y0||this.ylo>=y1){return false;}
- if(x0>=this.xhi&&x1>=this.xhi){return false;}
- if(y0===y1){return(x0>=this.xlo||x1>=this.xlo);}
- var xstart;var ystart;var xend;var yend;var dx=(x1-x0);var dy=(y1-y0);if(y0<this.ylo){xstart=x0+(this.ylo-y0)*dx/dy;ystart=this.ylo;}else{xstart=x0;ystart=y0;}
- if(this.yhi<y1){xend=x0+(this.yhi-y0)*dx/dy;yend=this.yhi;}else{xend=x1;yend=y1;}
- if(xstart>=this.xhi&&xend>=this.xhi){return false;}
- if(xstart>this.xlo||xend>this.xlo){return true;}
- this.record(ystart,yend,direction);return false;};};sec.sun.awt.geom.NonZero.debug=false;var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Order0=function()
- {this.x=0;this.y=0;this.direction=-1;this._parent=null;var x=arguments[0];var y=arguments[1];this.direction=1;this.x=x;this.y=y;this.getOrder=function(){return 0;};this.getXTop=function(){return this.x;};this.getYTop=function(){return this.y;};this.getXBot=function(){return this.x;};this.getYBot=function(){return this.y;};this.getXMin=function(){return this.x;};this.getxMax=function(){return this.x;};this.getX0=function(){return this.x;};this.getY0=function(){return this.y;};this.getX1=function(){return this.x;};this.getY1=function(){return this.y;};this.XforY=function(y){return y;};this.TforY=function(y){return 0;};this.XforT=function(t){return this.x;};this.YforT=function(t){return this.y;};this.dXforT=function(t,deriv){return 0;};this.dYforT=function(t,deriv){return 0;};this.nextVertical=function(t0,t1){return t1;};this.crossingsFor=function(x,y){return 0;};this.accumulateCrossings=function(c){return(this.x>c.getXLo()&&this.x<c.getXHi()&&this.y>c.getYLo()&&this.y<c.getYHi());};this.enalarge=function(r){r.add(this.x,this.y);};this.getSubCurve=function(ystart,yend,dir){return this;};this.getReversedCurve=function(){return this;};this.getSegment=function(coords){coords[0]=this.x;coords[1]=this.y;return 0;};this.controlPointString=function(){return"";};this.getWithDirection=function(direction){return(this.direction===direction?this:this.getReversedCurve());};this.setParent=function(parent){this._parent=parent;};this.getParent=function(){return this._parent;};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Order1=function()
- {this.x0=0;this.y0=0;this.x1=0;this.y1=0;this.xmin=0;this.xmax=0;this.direction=-1;this._parent=null;var x0=arguments[0];var y0=arguments[1];var x1=arguments[2];var y1=arguments[3];var direction=arguments[4];this.x0=x0;this.y0=y0;this.x1=x1;this.y1=y1;this.direction=direction;if(x0<x1){this.xmin=x0;this.xmax=x1;}else{this.xmin=x1;this.xmax=x0;}
- this.getOrder=function(){return 1;};this.getXTop=function(){return this.x0;};this.getYTop=function(){return this.y0;};this.getXBot=function(){return this.x1;};this.getYBot=function(){return this.y1;};this.getXMin=function(){return this.xmin;};this.getXMax=function(){return this.xmax;};this.getX0=function(){return(this.direction===1)?this.x0:this.x1;};this.getY0=function(){return(this.direction===1)?this.y0:this.y1;};this.getX1=function(){return(this.direction===-1)?this.x0:this.x1;};this.getY1=function(){return(this.direction===-1)?this.y0:this.y1;};this.XforY=function(y){if(this.x0===this.x1||y<=this.y0){return this.x0;}
- if(y>=this.y1){return this.x1;}
- return(this.x0+(y-this.y0)*(this.x1-this.x0)/(this.y1-this.y0));};this.TforY=function(y){if(y<=this.y0){return 0;}
- if(y>=this.y1){return 1;}
- return(y-this.y0)/(this.y1-this.y0);};this.XforT=function(t){return this.x0+t*(this.x1-this.x0);};this.YforT=function(t){return this.y0+t*(this.y1-this.y0);};this.dXforT=function(t,deriv){switch(deriv){case 0:return this.x0+t*(this.x1-this.x0);case 1:return(this.x1-this.x0);default:return 0;}};this.dYforT=function(t,deriv){switch(deriv){case 0:return this.y0+t*(this.y1-this.y0);case 1:return(this.y1-this.y0);default:return 0;}};this.nextVertical=function(t0,t1){return t1;};this.accumulateCrossings=function(c){var xlo=c.getXLo();var ylo=c.getYLo();var xhi=c.getXHi();var yhi=c.getYHi();if(this.xmin>=xhi){return false;}
- var xstart;var ystart;var xend;var yend;if(this.y0<ylo){if(this.y1<=ylo){return false;}
- ystart=ylo;xstart=this.XforY(ylo);}else{if(this.y0>=yhi){return false;}
- ystart=this.y0;xstart=this.x0;}
- if(this.y1>yhi){yend=yhi;xend=this.XforY(yhi);}else{yend=this.y1;xend=this.x1;}
- if(xstart>=xhi&&xend>=xhi){return false;}
- if(xstart>xlo||xend>xlo){return true;}
- c.record(ystart,yend,this.direction);return false;};this.enlarge=function(r){r.add(this.x0,this.y0);r.add(this.x1,this.y1);};this.getWithDirection=function(direction){return(this.direction===direction?this:this.getReversedCurve());};this.getSubCurve=function(ystart,yend,dir)
- {if(ystart===this.y0&¥d===this.y1)
- {return this.getWithDirection(dir);}
- if(this.x0===this.x1)
- {return new sec.sun.awt.geom.Order1(this.x0,ystart,this.x1,yend,dir);}
- var num=this.x0-this.x1;var denom=this.y0-this.y1;var xstart=(this.x0+(ystart-this.y0)*num/denom);var xend=(this.x0+(yend-this.y0)*num/denom);return new sec.sun.awt.geom.Order1(xstart,ystart,xend,yend,dir);};this.getReversedCurve=function(){return new sec.sun.awt.geom.Order1(this.x0,this.y0,this.x1,this.y1,-this.direction);};this.compareTo=function(other,yrange){var curve=other;var c1=curve.getCurve();if(yrange[1]<=yrange[0]){throw new InternalError("yrange already screwed up...");}
- yrange[1]=Math.min(Math.min(yrange[1],this.y1),c1.y1);if(yrange[1]<=yrange[0]){throw new InternalError("backstepping from "+yrange[0]+" to "+yrange[1]);}
- if(this.xmax<=c1.xmin){return(this.xmin===c1.xmax)?0:-1;}
- if(this.xmin>=c1.xmax){return 1;}
- var dxa=this.x1-this.x0;var dya=this.y1-this.y0;var dxb=c1.x1-c1.x0;var dyb=c1.y1-c1.y0;var denom=dxb*dya-dxa*dyb;var y;if(denom!==0){var num=((this.x0-c1.x0)*dya*dyb-this.y0*dxa*dyb+c1.y0*dxb*dya);y=num/denom;if(y<=yrange[0]){y=Math.min(this.y1,c1.y1);}else{if(y<yrange[1]){yrange[1]=y;}
- y=Math.max(this.y0,c1.y0);}}else{y=Math.max(this.y0,c1.y0);}
- return sec.sun.awt.geom.Curve.orderof(this.XforY(y),c1.XforY(y));};this.getSegment=function(coords){if(this.direction===1){coords[0]=this.x1;coords[1]=this.y1;}else{coords[0]=this.x0;coords[1]=this.y0;}
- return 1;};this.controlPointString=function(){return"";};this.setParent=function(parent){this._parent=parent;};this.getParent=function(){return this._parent;};};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Order2=function()
- {this.x0=0;this.y0=0;this.cx0=0;this.cy0=0;this.x1=0;this.y1=0;this.xmin=0;this.xmax=0;this.xcoeff0=0;this.xcoeff1=0;this.xcoeff2=0;this.ycoeff0=0;this.ycoeff1=0;this.ycoeff2=0;this.direction=-1;this._parent=null;var x0=arguments[0];var y0=arguments[1];var cx0=arguments[2];var cy0=arguments[3];var x1=arguments[4];var y1=arguments[5];var direction=arguments[6];this.direction=direction;if(cy0<y0){cy0=y0;}else if(cy0>y1){cy0=y1;}
- this.x0=x0;this.y0=y0;this.cx0=cx0;this.cy0=cy0;this.x1=x1;this.y1=y1;this.xmin=Math.min(Math.min(x0,x1),cx0);this.xmax=Math.max(Math.max(x0,x1),cx0);this.xcoeff0=x0;this.xcoeff1=cx0+cx0-x0-x0;this.xcoeff2=x0-cx0-cx0+x1;this.ycoeff0=y0;this.ycoeff1=cy0+cy0-y0-y0;this.ycoeff2=y0-cy0-cy0+y1;this.getOrder=function(){return 2;};this.getXTop=function(){return this.x0;};this.getYTop=function(){return this.y0;};this.getXBot=function(){return this.x1;};this.getYBot=function(){return this.y1;};this.getXMin=function(){return this.xmin;};this.getXMax=function(){return this.xmax;};this.getX0=function(){return(this.direction===1)?this.x0:this.x1;};this.getY0=function(){return(this.direction===1)?this.y0:this.y1;};this.getCX0=function(){return this.cx0;};this.getCY0=function(){return this.cy0;};this.getx1=function(){return(this.direction===-1)?this.x0:this.x1;};this.getY1=function(){return(this.direction===-1)?this.y0:this.y1;};this.XforY=function(y){if(y<=this.y0){return this.x0;}
- if(y>=this.y1){return this.x1;}
- return this.XforT(this.TforY(y));};this.TforY=function(y){if(y<=this.y0){return 0;}
- if(y>=this.y1){return 1;}
- return sec.sun.awt.geom.Order2.TforY(y,this.ycoeff0,this.ycoeff1,this.ycoeff2);};this.XforT=function(t){return(this.xcoeff2*t+this.xcoeff1)*t+this.xcoeff0;};this.YforT=function(t){return(this.ycoeff2*t+this.ycoeff1)*t+this.ycoeff0;};this.dXforT=function(t,deriv){switch(deriv){case 0:return(this.xcoeff2*t+this.xcoeff1)*t+this.xcoeff0;case 1:return 2*this.xcoeff2*t+this.xcoeff1;case 2:return 2*this.xcoeff2;default:return 0;}};this.dYforT=function(t,deriv){switch(deriv){case 0:return(this.ycoeff2*t+this.ycoeff1)*t+this.ycoeff0;case 1:return 2*this.ycoeff2*t+this.ycoeff1;case 2:return 2*this.ycoeff2;default:return 0;}};this.nextVertical=function(t0,t1){var t=-this.xcoeff1/(2*this.xcoeff2);if(t>t0&&t<t1){return t;}
- return t1;};this.enlarge=function(r){r.add(this.x0,this.y0);var t=-this.xcoeff1/(2*this.xcoeff2);if(t>0&&t<1){r.add(this.XforT(t),this.YforT(t));}
- r.add(this.x1,this.y1);};this.getWithDirection=function(direction){return(this.direction===direction?this:this.getReversedCurve());};this.getSubCurve=function(ystart,yend,dir){var t0;var t1;if(ystart<=this.y0){if(yend>=this.y1){return this.getWithDirection(dir);}
- t0=0;}else{t0=sec.sun.awt.geom.Order2.TforY(ystart,this.ycoeff0,this.ycoeff1,this.ycoeff2);}
- if(yend>=this.y1){t1=1;}else{t1=sec.sun.awt.geom.Order2.TforY(yend,this.ycoeff0,this.ycoeff1,this.ycoeff2);}
- var eqn=Clazz.newArray(10,0);eqn[0]=this.x0;eqn[1]=this.y0;eqn[2]=this.cx0;eqn[3]=this.cy0;eqn[4]=this.x1;eqn[5]=this.y1;if(t1<1){sec.sun.awt.geom.Order2.split(eqn,0,t1);}
- var i;if(t0<=0){i=0;}else{sec.sun.awt.geom.Order2.split(eqn,0,t0/t1);i=4;}
- return new sec.sun.awt.geom.Order2(eqn[i+0],ystart,eqn[i+2],eqn[i+3],eqn[i+4],yend,dir);};this.getReversedCurve=function(){return new sec.sun.awt.geom.Order2(this.x0,this.y0,this.cx0,this.cy0,this.x1,this.y1,-this.direction);};this.getSegment=function(coords){coords[0]=this.cx0;coords[1]=this.cy0;if(this.direction===1){coords[2]=this.x1;coords[3]=this.y1;}else{coords[2]=this.x0;coords[3]=this.y0;}
- return 2;};this.controlPointString=function(){return("("+sec.sun.awt.geom.Curve.round(this.cx0)+", "+sec.sun.awt.geom.Curve.round(this.cy0)+"), ");};this.setParent=function(parent){this._parent=parent;};this.getParent=function(){return this._parent;};};sec.sun.awt.geom.Order2.TforY=function(y,ycoeff0,ycoeff1,ycoeff2){ycoeff0-=y;if(ycoeff2===0.0){var root=-ycoeff0/ycoeff1;if(root>=0&&root<=1){return root;}}else{var d=ycoeff1*ycoeff1-4.0*ycoeff2*ycoeff0;if(d>=0.0){d=Math.sqrt(d);if(ycoeff1<0.0){d=-d;}
- var q=(ycoeff1+d)/-2.0;var root=q/ycoeff2;if(root>=0&&root<=1){return root;}
- if(q!==0.0){root=ycoeff0/q;if(root>=0&&root<=1){return root;}}}}
- var y0=ycoeff0;var y1=ycoeff0+ycoeff1+ycoeff2;return(0<(y0+y1)/2)?0.0:1.0;};sec.sun.awt.geom.Order2.split=function(coords,pos,t){var x0;var y0;var cx;var cy;var x1;var y1;coords[pos+8]=x1=coords[pos+4];coords[pos+9]=y1=coords[pos+5];cx=coords[pos+2];cy=coords[pos+3];x1=cx+(x1-cx)*t;y1=cy+(y1-cy)*t;x0=coords[pos+0];y0=coords[pos+1];x0=x0+(cx-x0)*t;y0=y0+(cy-y0)*t;cx=x0+(x1-x0)*t;cy=y0+(y1-y0)*t;coords[pos+2]=x0;coords[pos+3]=y0;coords[pos+4]=cx;coords[pos+5]=cy;coords[pos+6]=x1;coords[pos+7]=y1;};sec.sun.awt.geom.Order2.getHorizontalParams=function(c0,cp,c1,ret){if(c0<=cp&&cp<=c1){return 0;}
- c0-=cp;c1-=cp;var denom=c0+c1;if(denom===0){return 0;}
- var t=c0/denom;if(t<=0||t>=1){return 0;}
- ret[0]=t;return 1;};sec.sun.awt.geom.Order2.addInstance=function(curves,x0,y0,cx0,cy0,x1,y1,direction){if(y0>y1){curves.add(new sec.sun.awt.geom.Order2(x1,y1,cx0,cy0,x0,y0,-direction));}else if(y1>y0){curves.add(new sec.sun.awt.geom.Order2(x0,y0,cx0,cy0,x1,y1,direction));}};sec.sun.awt.geom.Order2.insert=function(curves,tmp,x0,y0,cx0,cy0,x1,y1,direction){var numparams=sec.sun.awt.geom.Order2.getHorizontalParams(y0,cy0,y1,tmp);if(numparams===0){sec.sun.awt.geom.Order2.addInstance(curves,x0,y0,cx0,cy0,x1,y1,direction);return;}
- var t=tmp[0];tmp[0]=x0;tmp[1]=y0;tmp[2]=cx0;tmp[3]=cy0;tmp[4]=x1;tmp[5]=y1;sec.sun.awt.geom.Order2.split(tmp,0,t);var i0=(direction===1)?0:4;var i1=4-i0;sec.sun.awt.geom.Order2.addInstance(curves,tmp[i0],tmp[i0+1],tmp[i0+2],tmp[i0+3],tmp[i0+4],tmp[i0+5],direction);sec.sun.awt.geom.Order2.addInstance(curves,tmp[i1],tmp[i1+1],tmp[i1+2],tmp[i1+3],tmp[i1+4],tmp[i1+5],direction);};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Order3=function()
- {this.x0=0;this.y0=0;this.cx0=0;this.cy0=0;this.cx1=0;this.cy1=0;this.x1=0;this.y1=0;this.xmin=0;this.xmax=0;this.xcoeff0=0;this.xcoeff1=0;this.xcoeff2=0;this.xcoeff3=0;this.ycoeff0=0;this.ycoeff1=0;this.ycoeff2=0;this.ycoeff3=0;this.direction=-1;this.TforY1=0;this.YforT1=0;this.TforY2=0;this.YforT2=0;this.TforY3=0;this.YforT3=0;this._parent=null;var x0=arguments[0];var y0=arguments[1];var cx0=arguments[2];var cy0=arguments[3];var cx1=arguments[4];var cy1=arguments[5];var x1=arguments[6];var y1=arguments[7];var direction=arguments[8];this.direction=direction;if(cy0<y0)cy0=y0;if(cy1>y1)cy1=y1;this.x0=x0;this.y0=y0;this.cx0=cx0;this.cy0=cy0;this.cx1=cx1;this.cy1=cy1;this.x1=x1;this.y1=y1;this.xmin=Math.min(Math.min(x0,x1),Math.min(cx0,cx1));this.xmax=Math.max(Math.max(x0,x1),Math.max(cx0,cx1));this.xcoeff0=x0;this.xcoeff1=(cx0-x0)*3.0;this.xcoeff2=(cx1-cx0-cx0+x0)*3.0;this.xcoeff3=x1-(cx1-cx0)*3.0-x0;this.ycoeff0=y0;this.ycoeff1=(cy0-y0)*3.0;this.ycoeff2=(cy1-cy0-cy0+y0)*3.0;this.ycoeff3=y1-(cy1-cy0)*3.0-y0;this.YforT1=this.YforT2=this.YforT3=y0;this.getOrder=function(){return 3;};this.getXTop=function(){return this.x0;};this.getYTop=function(){return this.y0;};this.getXBot=function(){return this.x1;};this.getYBot=function(){return this.y1;};this.getXMin=function(){return this.xmin;};this.getXMax=function(){return this.xmax;};this.getX0=function(){return(this.direction===1)?this.x0:this.x1;};this.getY0=function(){return(this.direction===1)?this.y0:this.y1;};this.getCX0=function(){return(this.direction===1)?this.cx0:this.cx1;};this.getCY0=function(){return(this.direction===1)?this.cy0:this.cy1;};this.getCX1=function(){return(this.direction===-1)?this.cx0:this.cx1;};this.getCY1=function(){return(this.direction===-1)?this.cy0:this.cy1;};this.getX1=function(){return(this.direction===-1)?this.x0:this.x1;};this.getY1=function(){return(this.direction===-1)?this.y0:this.y1;};this.TforY=function(y){if(y<=this.y0)return 0;if(y>=this.y1)return 1;if(y===this.YforT1)return this.TforY1;if(y===this.YforT2)return this.TforY2;if(y===this.YforT3)return this.TforY3;if(this.ycoeff3===0.0){return sec.sun.awt.geom.Order2.TforY(y,this.ycoeff0,this.ycoeff1,this.ycoeff2);}
- var a=this.ycoeff2/this.ycoeff3;var b=this.ycoeff1/this.ycoeff3;var c=(this.ycoeff0-y)/this.ycoeff3;var roots=0;var Q=(a*a-3.0*b)/9.0;var R=(2.0*a*a*a-9.0*a*b+27.0*c)/54.0;var R2=R*R;var Q3=Q*Q*Q;var a_3=a/3.0;var t;if(R2<Q3){var theta=Math.acos(R/Math.sqrt(Q3));Q=-2.0*Math.sqrt(Q);t=this.refine(a,b,c,y,Q*Math.cos(theta/3.0)-a_3);if(t<0){t=this.refine(a,b,c,y,Q*Math.cos((theta+6.283185307179586)/3.0)-a_3);}
- if(t<0){t=this.refine(a,b,c,y,Q*Math.cos((theta-6.283185307179586)/3.0)-a_3);}}else{var neg=(R<0.0);var S=Math.sqrt(R2-Q3);if(neg){R=-R;}
- var A=Math.pow(R+S,0.3333333333333333);if(!neg){A=-A;}
- var B=(A===0.0)?0.0:(Q/A);t=this.refine(a,b,c,y,(A+B)-a_3);}
- if(t<0){var t0=0;var t1=1;while(true){t=(t0+t1)/2;if(t===t0||t===t1){break;}
- var yt=this.YforT(t);if(yt<y){t0=t;}else if(yt>y){t1=t;}else{break;}}}
- if(t>=0){this.TforY3=this.TforY2;this.YforT3=this.YforT2;this.TforY2=this.TforY1;this.YforT2=this.YforT1;this.TforY1=t;this.YforT1=y;}
- return t;};this.refine=function(a,b,c,target,t){if(t<-0.1||t>1.1){return-1;}
- var y=this.YforT(t);var t0;var t1;if(y<target){t0=t;t1=1;}else{t0=0;t1=t;}
- var origt=t;var origy=y;var useslope=true;while(y!==target){if(!useslope){var t2=(t0+t1)/2;if(t2===t0||t2===t1){break;}
- t=t2;}else{var slope=this.dYforT(t,1);if(slope===0){useslope=false;continue;}
- var t2=t+((target-y)/slope);if(t2===t||t2<=t0||t2>=t1){useslope=false;continue;}
- t=t2;}
- y=this.YforT(t);if(y<target){t0=t;}else if(y>target){t1=t;}else{break;}}
- var verbose=false;if(false&&t>=0&&t<=1){y=this.YforT(t);var tdiff=sec.sun.awt.geom.Curve.diffbits(t,origt);var ydiff=sec.sun.awt.geom.Curve.diffbits(y,origy);var yerr=sec.sun.awt.geom.Curve.diffbits(y,target);if(yerr>0||(verbose&&tdiff>0)){System.out.println("target was y = "+target);System.out.println("original was y = "+origy+", t = "+origt);System.out.println("final was y = "+y+", t = "+t);System.out.println("t diff is "+tdiff);System.out.println("y diff is "+ydiff);System.out.println("y error is "+yerr);var tlow=sec.sun.awt.geom.Curve.prev(t);var ylow=this.YforT(tlow);var thi=sec.sun.awt.geom.Curve.next(t);var yhi=this.YforT(thi);if(Math.abs(target-ylow)<Math.abs(target-y)||Math.abs(target-yhi)<Math.abs(target-y)){System.out.println("adjacent y's = ["+ylow+", "+yhi+"]");}}}
- return(t>1)?-1:t;};this.XforY=function(y){if(y<=this.y0){return this.x0;}
- if(y>=this.y1){return this.x1;}
- return this.XforT(this.TforY(y));};this.XforT=function(t){return(((this.xcoeff3*t)+this.xcoeff2)*t+this.xcoeff1)*t+this.xcoeff0;};this.YforT=function(t){return(((this.ycoeff3*t)+this.ycoeff2)*t+this.ycoeff1)*t+this.ycoeff0;};this.dXforT=function(t,deriv){switch(deriv){case 0:return(((this.xcoeff3*t)+this.xcoeff2)*t+this.xcoeff1)*t+this.xcoeff0;case 1:return((3*this.xcoeff3*t)+2*this.xcoeff2)*t+this.xcoeff1;case 2:return(6*this.xcoeff3*t)+2*this.xcoeff2;case 3:return 6*this.xcoeff3;default:return 0;}};this.dYforT=function(t,deriv){switch(deriv){case 0:return(((this.ycoeff3*t)+this.ycoeff2)*t+this.ycoeff1)*t+this.ycoeff0;case 1:return((3*this.ycoeff3*t)+2*this.ycoeff2)*t+this.ycoeff1;case 2:return(6*this.ycoeff3*t)+2*this.ycoeff2;case 3:return 6*this.ycoeff3;default:return 0;}};this.nextVertical=function(t0,t1){var eqn=[this.xcoeff1,2*this.xcoeff2,3*this.xcoeff3];var numroots=sec.sun.awt.geom.Curve.solveQuadratic(eqn,eqn);for(var i=0;i<numroots;i++){if(eqn[i]>t0&&eqn[i]<t1){t1=eqn[i];}}
- return t1;};this.enlarge=function(r){r.add(this.x0,this.y0);var eqn=[this.xcoeff1,2*this.xcoeff2,3*this.xcoeff3];var numroots=sec.sun.awt.geom.Curve.solveQuadratic(eqn,eqn);for(var i=0;i<numroots;i++){var t=eqn[i];if(t>0&&t<1){r.add(this.XforT(t),this.YforT(t));}}
- r.add(this.x1,this.y1);};this.getWithDirection=function(direction){return(this.direction===direction?this:this.getReversedCurve());};this.getSubCurve=function(ystart,yend,dir){if(ystart<=this.y0&¥d>=this.y1){return this.getWithDirection(dir);}
- var eqn=Clazz.newArray(14,0);var t0;var t1;t0=this.TforY(ystart);t1=this.TforY(yend);eqn[0]=this.x0;eqn[1]=this.y0;eqn[2]=this.cx0;eqn[3]=this.cy0;eqn[4]=this.cx1;eqn[5]=this.cy1;eqn[6]=this.x1;eqn[7]=this.y1;if(t0>t1){var t=t0;t0=t1;t1=t;}
- if(t1<1){sec.sun.awt.geom.Order3.split(eqn,0,t1);}
- var i;if(t0<=0){i=0;}else{sec.sun.awt.geom.Order3.split(eqn,0,t0/t1);i=6;}
- return new sec.sun.awt.geom.Order3(eqn[i+0],ystart,eqn[i+2],eqn[i+3],eqn[i+4],eqn[i+5],eqn[i+6],yend,dir);};this.getReversedCurve=function(){return new sec.sun.awt.geom.Order3(this.x0,this.y0,this.cx0,this.cy0,this.cx1,this.cy1,this.x1,this.y1,-this.direction);};this.getSegment=function(coords){if(this.direction===1){coords[0]=this.cx0;coords[1]=this.cy0;coords[2]=this.cx1;coords[3]=this.cy1;coords[4]=this.x1;coords[5]=this.y1;}else{coords[0]=this.cx1;coords[1]=this.cy1;coords[2]=this.cx0;coords[3]=this.cy0;coords[4]=this.x0;coords[5]=this.y0;}
- return 3;};this.controlPointString=function(){return(("("+sec.sun.awt.geom.Curve.round(this.getCX0())+", "+sec.sun.awt.geom.Curve.round(this.getCY0())+"), ")+("("+sec.sun.awt.geom.Curve.round(this.getCX1())+", "+sec.sun.awt.geom.Curve.round(this.getCY1())+"), "));};this.setParent=function(parent){this._parent=parent;};this.getParent=function(){return this._parent;};};sec.sun.awt.geom.Order3.insert=function(curves,tmp,x0,y0,cx0,cy0,cx1,cy1,x1,y1,direction){var numparams=sec.sun.awt.geom.Order3.getHorizontalParams(y0,cy0,cy1,y1,tmp);if(numparams===0){sec.sun.awt.geom.Order3.addInstance(curves,x0,y0,cx0,cy0,cx1,cy1,x1,y1,direction);return;}
- tmp[3]=x0;tmp[4]=y0;tmp[5]=cx0;tmp[6]=cy0;tmp[7]=cx1;tmp[8]=cy1;tmp[9]=x1;tmp[10]=y1;var t=tmp[0];if(numparams>1&&t>tmp[1]){tmp[0]=tmp[1];tmp[1]=t;t=tmp[0];}
- sec.sun.awt.geom.Order3.split(tmp,3,t);if(numparams>1){t=(tmp[1]-t)/(1-t);sec.sun.awt.geom.Order3.split(tmp,9,t);}
- var index=3;if(direction===-1){index+=numparams*6;}while(numparams>=0){sec.sun.awt.geom.Order3.addInstance(curves,tmp[index+0],tmp[index+1],tmp[index+2],tmp[index+3],tmp[index+4],tmp[index+5],tmp[index+6],tmp[index+7],direction);numparams--;if(direction===1){index+=6;}else{index-=6;}}};sec.sun.awt.geom.Order3.addInstance=function(curves,x0,y0,cx0,cy0,cx1,cy1,x1,y1,direction){if(y0>y1){curves.add(new sec.sun.awt.geom.Order3(x1,y1,cx1,cy1,cx0,cy0,x0,y0,-direction));}else if(y1>y0){curves.add(new sec.sun.awt.geom.Order3(x0,y0,cx0,cy0,cx1,cy1,x1,y1,direction));}};sec.sun.awt.geom.Order3.getHorizontalParams=function(c0,cp0,cp1,c1,ret)
- {if(c0<=cp0&&cp0<=cp1&&cp1<=c1)
- {return 0;}
- c1-=cp1;cp1-=cp0;cp0-=c0;ret[0]=cp0;ret[1]=(cp1-cp0)*2;ret[2]=(c1-cp1-cp1+cp0);var numroots=sec.sun.awt.geom.Curve.solveQuadratic(ret,ret);var j=0;for(var i=0;i<numroots;i++){var t=ret[i];if(t>0&&t<1){if(j<i){ret[j]=t;}
- j++;}}
- return j;};sec.sun.awt.geom.Order3.split=function(coords,pos,t){var x0;var y0;var cx0;var cy0;var cx1;var cy1;var x1;var y1;coords[pos+12]=x1=coords[pos+6];coords[pos+13]=y1=coords[pos+7];cx1=coords[pos+4];cy1=coords[pos+5];x1=cx1+(x1-cx1)*t;y1=cy1+(y1-cy1)*t;x0=coords[pos+0];y0=coords[pos+1];cx0=coords[pos+2];cy0=coords[pos+3];x0=x0+(cx0-x0)*t;y0=y0+(cy0-y0)*t;cx0=cx0+(cx1-cx0)*t;cy0=cy0+(cy1-cy0)*t;cx1=cx0+(x1-cx0)*t;cy1=cy0+(y1-cy0)*t;cx0=x0+(cx0-x0)*t;cy0=y0+(cy0-y0)*t;coords[pos+2]=x0;coords[pos+3]=y0;coords[pos+4]=cx0;coords[pos+5]=cy0;coords[pos+6]=cx0+(cx1-cx0)*t;coords[pos+7]=cy0+(cy1-cy0)*t;coords[pos+8]=cx1;coords[pos+9]=cy1;coords[pos+10]=x1;coords[pos+11]=y1;};var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.SomeOp=function()
- {this._type=-1;this.inLeft=false;this.inRight=false;this.inResult=false;var type=arguments[0];this._type=type;this.newRow=function()
- {this.inLeft=false;this.inRight=false;this.inResult=false;};this.classify=function(e)
- {if(e.getCurveTag()===0){this.inLeft=!this.inLeft;}else{this.inRight=!this.inRight;}
- var newClass=this.newClassification(this.inLeft,this.inRight);if(this.inResult===newClass){return 0;}
- this.inResult=newClass;return(newClass?1:-1);};this.getState=function()
- {return(this.inResult?1:-1);};this.newClassification=function(inLeft,inRight)
- {switch(this._type)
- {case 1:return(inLeft||inRight);case 0:return(inLeft&&!inRight);case 2:return(inLeft&&inRight);case 3:return(inLeft!==inRight);default:return false;}};this.calculate=function(left,right)
- {var edges=new sec.sun.awt.geom.Vector();sec.sun.awt.geom.SomeOp.addEdges(edges,left,0);sec.sun.awt.geom.SomeOp.addEdges(edges,right,1);edges=this.pruneEdges(edges);if(false){System.out.println("result: ");var numcurves=edges.size();var curvelist=edges.toArray2();for(var i=0;i<numcurves;i++){System.out.println("curvelist["+i+"] = "+curvelist[i]);}}
- return edges;};this.pruneEdges=function(edges)
- {var numedges=edges.size();if(numedges<2){return edges;}
- var edgelist=new Array(numedges);var _enum=edges.elements();var k=0;while(_enum.hasMoreElements()){edgelist[k++]=_enum.nextElement();}
- sec.sun.awt.geom.Arrays.sort(edgelist);if(false){System.out.println("pruning: ");for(var i=0;i<numedges;i++){System.out.println("edgelist["+i+"] = "+edgelist[i]);}}
- var e;var left=0;var right=0;var cur=0;var next=0;var yrange=Clazz.newArray(2,0);var subcurves=new sec.sun.awt.geom.Vector();var chains=new sec.sun.awt.geom.Vector();var links=new sec.sun.awt.geom.Vector();while(left<numedges){var y=yrange[0];for(cur=next=right-1;cur>=left;cur--){e=edgelist[cur];if(e.getCurve().getYBot()>y){if(next>cur){edgelist[next]=e;}
- next--;}}
- left=next+1;if(left>=right){if(right>=numedges){break;}
- y=edgelist[right].getCurve().getYTop();if(y>yrange[0]){sec.sun.awt.geom.SomeOp.finalizeSubCurves(subcurves,chains);}
- yrange[0]=y;}
- while(right<numedges){e=edgelist[right];if(e.getCurve().getYTop()>y){break;}
- right++;}
- yrange[1]=edgelist[left].getCurve().getYBot();if(right<numedges){y=edgelist[right].getCurve().getYTop();if(yrange[1]>y){yrange[1]=y;}}
- if(false){System.out.println("current line: y = ["+yrange[0]+", "+yrange[1]+"]");for(cur=left;cur<right;cur++){System.out.println(" "+edgelist[cur]);}}
- var nexteq=1;for(cur=left;cur<right;cur++){e=edgelist[cur];e.setEquivalence(0);for(next=cur;next>left;next--){var prevedge=edgelist[next-1];var ordering=e.compareTo(prevedge,yrange);if(yrange[1]<=yrange[0]){throw new InternalError("backstepping to "+yrange[1]+" from "+yrange[0]);}
- if(ordering>=0){if(ordering===0){var eq=prevedge.getEquivalence();if(eq===0){eq=nexteq++;prevedge.setEquivalence(eq);}
- e.setEquivalence(eq);}
- break;}
- edgelist[next]=prevedge;}
- edgelist[next]=e;}
- if(false){System.out.println("current sorted line: y = ["+yrange[0]+", "+yrange[1]+"]");for(cur=left;cur<right;cur++){System.out.println(" "+edgelist[cur]);}}
- this.newRow();var ystart=yrange[0];var yend=yrange[1];for(cur=left;cur<right;cur++){e=edgelist[cur];var etag;var eq=e.getEquivalence();if(eq!==0){var origstate=this.getState();etag=(origstate===1?-1:1);var activematch=null;var longestmatch=e;var furthesty=yend;do{this.classify(e);if(activematch===null&&e.isActiveFor(ystart,etag)){activematch=e;}
- y=e.getCurve().getYBot();if(y>furthesty){longestmatch=e;furthesty=y;}}while(++cur<right&&(e===edgelist[cur]).getEquivalence()===eq);--cur;if(this.getState()===origstate){etag=0;}else{e=(activematch!==null?activematch:longestmatch);}}else{etag=this.classify(e);}
- if(etag!==0){e.record(yend,etag);links.add(new sec.sun.awt.geom.CurveLink(e.getCurve(),ystart,yend,etag));}}
- if(this.getState()!==-1){System.out.println("Still inside at end of active edge list!");System.out.println("num curves = "+(right-left));System.out.println("num links = "+links.size());System.out.println("y top = "+yrange[0]);if(right<numedges){System.out.println("y top of next curve = "+edgelist[right].getCurve().getYTop());}else{System.out.println("no more curves");}
- for(cur=left;cur<right;cur++){e=edgelist[cur];System.out.println(e);var eq=e.getEquivalence();if(eq!==0){System.out.println(" was equal to "+eq+"...");}}}
- if(false){System.out.println("new links:");for(var i=0;i<links.size();i++){var link=links.elementAt(i);System.out.println(" "+link.getSubCurve());}}
- sec.sun.awt.geom.SomeOp.resolveLinks(subcurves,chains,links);links.clear();yrange[0]=yend;}
- sec.sun.awt.geom.SomeOp.finalizeSubCurves(subcurves,chains);var ret=new sec.sun.awt.geom.Vector();var enum_=subcurves.elements();var c=null;var obj=null;while(enum_.hasMoreElements())
- {link=enum_.nextElement();ret.add(link.getMoveto());var nextlink=link;while((nextlink=nextlink.getNext())!==null)
- {if(!link.absorb(nextlink))
- {obj=link.getSubCurve();if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order0))
- {c=(obj).getParent();}
- else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order1))
- {c=(obj).getParent();}
- else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order2))
- {c=(obj).getParent();}
- else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order3))
- {c=(obj).getParent();}
- else if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- {c=obj;}
- if(c===null)
- {c=new sec.sun.awt.geom.CurveObject(obj);}
- ret.add(c);link=nextlink;}}
- obj=link.getSubCurve();if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order0))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order1))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order2))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.Order3))
- c=(obj).getParent();else if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- c=obj;if(c===null)
- c=new sec.sun.awt.geom.CurveObject(obj);ret.add(c);}
- return ret;};};sec.sun.awt.geom.SomeOp.addEdges=function(edges,curves,curvetag)
- {var enum_=curves.elements();var c=null;var obj=null;while(enum_.hasMoreElements())
- {obj=enum_.nextElement();if(Clazz.instanceOf(obj,sec.sun.awt.geom.CurveObject))
- c=obj;else
- c=new sec.sun.awt.geom.CurveObject(obj);if(c.getOrder()>0)
- {edges.add(new sec.sun.awt.geom.Edge(c,curvetag));}}};sec.sun.awt.geom.SomeOp.finalizeSubCurves=function(subcurves,chains)
- {var numchains=chains.size();if(numchains===0){return;}
- if((numchains&1)!==0){throw new InternalError("Odd number of chains!");}
- var endlist=new Array(numchains);chains.toArray(endlist);for(var i=1;i<numchains;i+=2)
- {var open=endlist[i-1];var close=endlist[i];var subcurve=open.linkTo(close);if(subcurve!==null)
- {subcurves.add(subcurve);}}
- chains.clear();};sec.sun.awt.geom.SomeOp.resolveLinks=function(subcurves,chains,links)
- {var numlinks=links.size();var linklist;if(numlinks===0){linklist=sec.sun.awt.geom.SomeOp.EmptyLinkList;}else{if((numlinks&1)!==0){throw new InternalError("Odd number of new curves!");}
- linklist=new Array(numlinks+2);links.toArray(linklist);}
- var numchains=chains.size();var endlist;if(numchains===0){endlist=sec.sun.awt.geom.SomeOp.EmptyChainList;}else{if((numchains&1)!==0){throw new InternalError("Odd number of chains!");}
- endlist=new Array(numchains+2);chains.toArray(endlist);}
- var curchain=0;var curlink=0;chains.clear();var chain=endlist[0];var nextchain=endlist[1];var link=linklist[0];var nextlink=linklist[1];while(chain!=null||link!=null){var connectchains=(link==null);var connectlinks=(chain==null);if(!connectchains&&!connectlinks){connectchains=((curchain&1)==0&&chain.getX()==nextchain.getX());connectlinks=((curlink&1)==0&&link.getX()==nextlink.getX());if(!connectchains&&!connectlinks){var cx=chain.getX();var lx=link.getX();connectchains=(nextchain!=null&&cx<lx&&sec.sun.awt.geom.SomeOp.obstructs(nextchain.getX(),lx,curchain));connectlinks=(nextlink!=null&&lx<cx&&sec.sun.awt.geom.SomeOp.obstructs(nextlink.getX(),cx,curlink));}}
- if(connectchains){var subcurve=chain.linkTo(nextchain);if(subcurve!==null){subcurves.add(subcurve);}
- curchain+=2;chain=endlist[curchain];nextchain=endlist[curchain+1];}
- if(connectlinks){var openend=new sec.sun.awt.geom.ChainEnd(link,null);var closeend=new sec.sun.awt.geom.ChainEnd(nextlink,openend);openend.setOtherEnd(closeend);chains.add(openend);chains.add(closeend);curlink+=2;link=linklist[curlink];nextlink=linklist[curlink+1];}
- if(!connectchains&&!connectlinks){chain.addLink(link);chains.add(chain);curchain++;chain=nextchain;nextchain=endlist[curchain+1];curlink++;link=nextlink;nextlink=linklist[curlink+1];}}
- if((chains.size()&1)!==0){System.out.println("Odd number of chains!");}};sec.sun.awt.geom.SomeOp.obstructs=function(v1,v2,phase)
- {return(((phase&1)===0)?(v1<=v2):(v1<v2));};sec.sun.awt.geom.SomeOp.SUBOP=0;sec.sun.awt.geom.SomeOp.ADDOP=1;sec.sun.awt.geom.SomeOp.INTOP=2;sec.sun.awt.geom.SomeOp.XOROP=3;sec.sun.awt.geom.SomeOp.EmptyLinkList=new Array(2);sec.sun.awt.geom.SomeOp.EmptyChainList=new Array(2);var sec=sec||{};sec.sun=sec.sun||{};sec.sun.awt=sec.sun.awt||{};sec.sun.awt.geom=sec.sun.awt.geom||{};sec.sun.awt.geom.Vector=function()
- {this._vector=null;this._elements=null;this._vector=new java.util.ArrayList();this._elements=new sec.sun.awt.geom.Enumeration(this._vector);this.elements=function()
- {return this._elements;};this.elementAt=function(j)
- {return this._vector.get(j);};this.size=function()
- {return this._vector.size();};this.get=function(j)
- {return this._vector.get(j);};this.isEmpty=function()
- {return this._vector.isEmpty();};this.toArray2=function(){return this._vector.toArray();};this.toArray=function(obj)
- {var j=0;for(j=0;j<obj.length;j++)
- {if(this._vector.size()>j)
- obj[j]=this._vector.get(j);else
- obj[j]=null;}};this.add=function(obj)
- {this._vector.add(obj);};this.clear=function()
- {this._vector.clear();};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.kml=sec.geo.kml||{};sec.geo.kml.KmlOptions=function()
- {this.mode="absolute";this.fromString=function(a){return a;throw new IllegalArgumentException("No AltitudeMode with mode \""+a+"\" found");};this.toString=function(){return this.mode;};this.getMode=function(){return this.mode;};};sec.geo.kml.KmlOptions.AltitudeMode={ABSOLUTE:"absolute",RELATIVE_TO_GROUND:"relativeToGround",RELATIVE_TO_SEA_FLOOR:"relativeToSeaFloor",CLAMP_TO_GROUND:"clampToGround",CLAMP_TO_SEA_FLOOR:"clampToSeaFloor"};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.kml=sec.geo.kml||{};sec.geo.kml.KmlPolygon=function()
- {this.points=null;this.altitudeMode=null;this.altitudeModeField="#ALTITUDEMODE#";this.PREFIX=null;this.SUFFIX="\t\t\t\t\t</coordinates></LinearRing></outerBoundaryIs>\n\t\t\t\t</Polygon>\n";this.PREFIX=""+" <Polygon>\n"+" <tessellate>1</tessellate>\n"+" <altitudeMode>"+this.altitudeModeField+"</altitudeMode>\n"+" <outerBoundaryIs><LinearRing><coordinates>";this.SUFFIX=""+" </coordinates></LinearRing></outerBoundaryIs>\n"+" </Polygon>\n";this.altitudeMode=sec.geo.kml.KmlOptions.AltitudeMode.ABSOLUTE;this.points=new java.util.ArrayList();if(arguments.length===2)
- {var points=arguments[0];var altitudeMode=arguments[1];this.points.addAll(points);this.altitudeMode=altitudeMode;}
- this.addPoint=function(point){this.points.add(point);};this.addPoints=function(points){this.points.addAll(points);};this.toString=function(){var sb=new sec.geo.utilities.StringBuilder();sb.append(this.PREFIX);sb.append(this.toCoordString());sb.append(this.SUFFIX);var altitudeModeIndex=sb.indexOf(this.altitudeModeField);var altitudeModeLength=this.altitudeModeField.length;if(this.altitudeMode!==null)
- sb.replace(altitudeModeIndex,altitudeModeIndex+altitudeModeLength,this.altitudeMode.toString());return sb.toString();};this.toCoordString=function(){var sb=new sec.geo.utilities.StringBuilder();var orderedPoints=this.getPointsCounterClockwise();if(orderedPoints===null)
- return"";var point;for(var j=0;j<orderedPoints.size();j++)
- {point=orderedPoints.get(j);sb.append(new Double(point.getLongitude()));sb.append(",");sb.append(new Double(point.getLatitude()));sb.append(",");sb.append(new Double(point.getAltitude()));sb.append(" ");}
- point=orderedPoints.get(0);if(!point.equals(orderedPoints.get(orderedPoints.size()-1))){sb.append(new Double(point.getLongitude()));sb.append(",");sb.append(new Double(point.getLatitude()));sb.append(",");sb.append(new Double(point.getAltitude()));sb.append(" ");}
- return sb.toString();};this.getAltitudeMode=function(){return this.altitudeMode;};this.setAltitudeMode=function(altitudeMode){this.altitudeMode=altitudeMode;};this.getPointsClockwise=function(){if(this.points===null||this.points.size()<3)
- return null;var result=this.subList(this.points,0,this.points.size()-1);var order=this.getPointOrder();if(order<0){result=this.reverse(result);return result;}else
- return result;};this.getPointsCounterClockwise=function(){if(this.points===null||this.points.size()<3)
- return null;var result=this.subList(this.points,0,this.points.size()-1);var order=this.getPointOrder();if(order>0){result=this.reverse(result);return result;}else
- return result;};this.getPointOrder=function(){if(this.points===null||this.points.size()<3)
- return 0;var n=this.points.size();var j;var k;var count=0;var z;for(var i=0;i<n;i++){j=(i+1)%n;k=(i+2)%n;z=(this.points.get(j).getLongitude()-this.points.get(i).getLongitude())*(this.points.get(k).getLatitude()-this.points.get(i).getLatitude());z-=(this.points.get(j).getLatitude()-this.points.get(i).getLatitude())*(this.points.get(k).getLongitude()-this.points.get(i).getLongitude());if(z<0)
- count--;else if(z>0)
- count++;}
- if(count>0)
- return-1;else if(count<0)
- return 1;else
- return 0;};this.subList=function(al,fromIndex,toIndex){var result=new java.util.ArrayList();var j=0;for(j=fromIndex;j<toIndex;j++)
- result.add(al.get(j));return result;};this.reverse=function(al){var j=0;var result=new java.util.ArrayList();for(j=al.size()-1;j>=0;j--)
- result.add(al.get(j));return result;};};sec.geo.kml.KmlPolygon.REFERENCE_ELLIPSOID=org.gavaghan.geodesy.Ellipsoid.WGS84;var sec=sec||{};sec.geo=sec.geo||{};sec.geo.kml=sec.geo.kml||{};sec.geo.kml.KmlRenderer=function()
- {this.colorDefault="ff003fff";this.descriptionField="#DESCRIPTION#";this.extendedData="#EXTENDEDDATA#";this.colorField="#COLOR#";this.nameField="#NAME#";this.idField="#ID#";this.placemarkidField="#PLACEMARKID#";this.KML_START=null;this.KML_END="</Folder>\n";this.PLACEMARK_START=null;this.PLACEMARK_END="\t\t\t</MultiGeometry>\n\t\t</Placemark>\n";this.DEFAULT_EXDAT="<Data name='sid'><value>#ID#</value></Data><Data name='shapeType'><value>#SHAPETYPE#</value></Data><Data name='lat'><value>#LAT#</value></Data><Data name='lon'><value>#LON#</value></Data><Data name='alt'><value>#ALT#</value></Data>";this.DEFAULT_BLSTY="<![CDATA[$[sid]]]>";this.KML_START="<Folder id=\""+this.idField+"\">\n";this.PLACEMARK_START="\t\t<Placemark id=\""+this.placemarkidField+"\">\n"+" <Style>\n"+" <PolyStyle>\n"+" <color>"+this.colorField+"</color>\n"+" </PolyStyle>\n"+" <LineStyle>\n"+" <color>"+this.colorField+"</color>\n"+" </LineStyle>\n"+" </Style>\n"+" <name>"+this.nameField+"</name>\n"+" <description>"+this.descriptionField+"</description>\n"+" <ExtendedData>"+this.extendedData+"</ExtendedData>\n"+" <MultiGeometry>\n";this.KML_START="<Folder id=\""+this.idField+"\">\n";this.KML_END="</Folder>\n";this.PLACEMARK_START=""+" <Placemark id=\""+this.placemarkidField+"\">\n"+" <Style>\n"+" <PolyStyle>\n"+" <color>"+this.colorField+"</color>\n"+" </PolyStyle>\n"+" <LineStyle>\n"+" <color>"+this.colorField+"</color>\n"+" </LineStyle>\n"+" </Style>\n"+" <name>"+this.nameField+"</name>\n"+" <description>"+this.descriptionField+"</description>\n"+" <ExtendedData>"+this.extendedData+"</ExtendedData>\n"+" <MultiGeometry>\n";this.PLACEMARK_END=""+" </MultiGeometry>\n"+" </Placemark>\n";this.DEFAULT_EXDAT="<Data name='sid'><value>#ID#</value></Data><Data name='shapeType'><value>#SHAPETYPE#</value></Data><Data name='lat'><value>#LAT#</value></Data><Data name='lon'><value>#LON#</value></Data><Data name='alt'><value>#ALT#</value></Data>";this.DEFAULT_BLSTY="<!"+"[CDAT"+"A["+"$[sid]"+"]]"+">";this.renderPolygons=function(ext){var polys=new java.util.ArrayList();ext.setMaxDistance(200000);ext.setFlatness(1);ext.setLimit(3);var perimeterPoints=new java.util.ArrayList();var it=null;var ait=null;var oit=ext.getPathIterator(null);if(Clazz.instanceOf(oit,armyc2.c2sd.graphics2d.PathIterator))
- it=oit;else if(Clazz.instanceOf(oit,sec.sun.awt.geom.AreaIterator))
- ait=oit;var pre=null;if(it!==null){while(!it.isDone()){var strokePoints=Clazz.newArray(6,0);var type=it.currentSegment(strokePoints);var longitudeDegrees=strokePoints[0];var latitudeDegrees=strokePoints[1];switch(type){case 0:case 1:if(pre!==null){var ps=new java.util.ArrayList();ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMinAltitude()));ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMaxAltitude()));ps.add(new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees,ext.getMaxAltitude()));ps.add(new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees,ext.getMinAltitude()));ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMinAltitude()));polys.add(new sec.geo.kml.KmlPolygon(ps,ext.getAltitudeMode()));}
- pre=new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees);perimeterPoints.add(pre);}
- it.next();}}else if(ait!==null){while(!ait.isDone()){var strokePoints=Clazz.newArray(6,0);var type=ait.currentSegment(strokePoints);var longitudeDegrees=strokePoints[0];var latitudeDegrees=strokePoints[1];switch(type){case 0:case 1:if(pre!==null){var ps=new java.util.ArrayList();ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMinAltitude()));ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMaxAltitude()));ps.add(new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees,ext.getMaxAltitude()));ps.add(new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees,ext.getMinAltitude()));ps.add(new sec.geo.shape.Point(pre.getLongitude(),pre.getLatitude(),ext.getMinAltitude()));polys.add(new sec.geo.kml.KmlPolygon(ps,ext.getAltitudeMode()));}
- pre=new sec.geo.shape.Point(longitudeDegrees,latitudeDegrees);perimeterPoints.add(pre);}
- ait.next();}}
- if(perimeterPoints.size()>0){if(perimeterPoints.get(0).equals(perimeterPoints.get(perimeterPoints.size()-1))){polys.add(new sec.geo.kml.KmlPolygon(this.transformPoints(perimeterPoints,ext.getMinAltitude()),ext.getAltitudeMode()));polys.add(new sec.geo.kml.KmlPolygon(this.transformPoints(perimeterPoints,ext.getMaxAltitude()),ext.getAltitudeMode()));}else{perimeterPoints.add(perimeterPoints.get(0));polys.add(new sec.geo.kml.KmlPolygon(this.transformPoints(perimeterPoints,ext.getMinAltitude()),ext.getAltitudeMode()));polys.add(new sec.geo.kml.KmlPolygon(this.transformPoints(perimeterPoints,ext.getMaxAltitude()),ext.getAltitudeMode()));}}
- return polys;};this.getPlacemarkKml=function(ext,id,name,description,color){try{var sb=new sec.geo.utilities.StringBuilder();var polys=this.renderPolygons(ext);sb.append(this.PLACEMARK_START);var placemarkIdIndex=sb.indexOf(this.placemarkidField);var placemarkIdLength=this.placemarkidField.length;if(id!==null){sb.replace(placemarkIdIndex,placemarkIdIndex+placemarkIdLength,id+"_mg");}
- var descriptionIndex=sb.indexOf(this.descriptionField);var descriptionLength=this.descriptionField.length;if(description!==null)
- sb.replace(descriptionIndex,descriptionIndex+descriptionLength,description);var colorIndex=sb.indexOf(this.colorField);var colorLength=this.colorField.length;if(color!==null){sb.replace(colorIndex,colorIndex+colorLength,color);}else
- sb.replace(colorIndex,colorIndex+colorLength,this.colorDefault);var lineColorIndex=sb.indexOf2(this.colorField,colorIndex+colorLength);if(color!==null){sb.replace(lineColorIndex,lineColorIndex+colorLength,color);}else
- sb.replace(lineColorIndex,lineColorIndex+colorLength,this.colorDefault);var nameIndex=sb.indexOf(this.nameField);var nameLength=this.nameField.length;if(name!==null)
- sb.replace(nameIndex,nameIndex+nameLength,name);for(var j=0;j<polys.size();j++)
- {var poly=polys.get(j);sb.append(poly.toString());}
- sb.append(this.PLACEMARK_END);return sb.toString();}catch(e){throw e;}};this.getTrackKml=function(ext,id,name,description,color){try{var aext=this.getAExtObject(ext);var sb=new sec.geo.utilities.StringBuilder();sb.append(this.KML_START);var idIndex=sb.indexOf(this.idField);var idLength=this.idField.length;sb.replace(idIndex,idIndex+idLength,id);var elements=aext.getElements();var j=0;for(j=0;j<elements.size();j++)
- {var route=elements.get(j);var aext2=new sec.geo.shape.AExtObject(route);sb.append(this.getPlacemarkKml(aext2,id,name,description,color));}
- sb.append(this.KML_END);return sb.toString();}catch(e){throw e;}};this.getKml=function(ext,id,name,description,color){try{var aext=this.getAExtObject(ext);if(aext.getElements()!==null)
- return(this.getTrackKml(ext,id,name,description,color));var sb=new sec.geo.utilities.StringBuilder();sb.append(this.KML_START);var idIndex=sb.indexOf(this.idField);var idLength=this.idField.length;sb.replace(idIndex,idIndex+idLength,id);sb.append(this.getPlacemarkKml(aext,id,name,description,color));sb.append(this.KML_END);return sb.toString();}catch(e){throw e;}};this.getAExtObject=function(obj){var line=null;var route=null;var circle=null;var polyarc=null;var polygon=null;var orbit=null;var radarc=null;var track=null;var cake=null;var point=null;var ext=null;if(Clazz.instanceOf(obj,sec.geo.shape.Line)){line=obj;ext=new sec.geo.shape.AExtObject(line);}else if(Clazz.instanceOf(obj,sec.geo.shape.Route)){route=obj;ext=new sec.geo.shape.AExtObject(route);}else if(Clazz.instanceOf(obj,sec.geo.shape.Polyarc)){polyarc=obj;ext=new sec.geo.shape.AExtObject(polyarc);}else if(Clazz.instanceOf(obj,sec.geo.shape.Orbit)){orbit=obj;ext=new sec.geo.shape.AExtObject(orbit);}else if(Clazz.instanceOf(obj,sec.geo.shape.Polygon)){polygon=obj;ext=new sec.geo.shape.AExtObject(polygon);}else if(Clazz.instanceOf(obj,sec.geo.shape.Circle)){circle=obj;ext=new sec.geo.shape.AExtObject(circle);}else if(Clazz.instanceOf(obj,sec.geo.shape.Radarc)){radarc=obj;ext=new sec.geo.shape.AExtObject(radarc);}else if(Clazz.instanceOf(obj,sec.geo.shape.Track)){track=obj;ext=new sec.geo.shape.AExtObject(track);}else if(Clazz.instanceOf(obj,sec.geo.shape.Cake)){cake=obj;ext=new sec.geo.shape.AExtObject(cake);}else if(Clazz.instanceOf(obj,sec.geo.shape.Point)){point=obj;ext=new sec.geo.shape.AExtObject(point);}
- return ext;};this.getCoords=function(obj){var ext=this.getAExtObject(obj);var polys=this.renderPolygons(ext);var coords=new Array(polys.size());var i=0;for(var poly,$poly=polys.iterator();$poly.hasNext()&&((poly=$poly.next())||true);){coords[i]=poly.toCoordString();i++;}
- return coords;};this.transformPoints=function(points,altitudeMeters){var returnPoints=new java.util.ArrayList();for(var j=0;j<points.size();j++)
- {var p=points.get(j);returnPoints.add(new sec.geo.shape.Point(p.getLongitude(),p.getLatitude(),altitudeMeters));}
- return returnPoints;};};var sec=sec||{};sec.geo=sec.geo||{};sec.geo.kml=sec.geo.kml||{};sec.geo.kml.XsltCoordinateWrapper={getLine:function(points,altitudeMode,minAltitude,maxAltitude){var line=new sec.geo.shape.Line();line.setAltitudeMode(altitudeMode);line.setMinAltitude(minAltitude);line.setMaxAltitude(maxAltitude);var aext=new sec.geo.shape.AExtObject(line);sec.geo.kml.XsltCoordinateWrapper.addPoints(points,aext);return line;},getCircle:function(pivotX,pivotY,altitudeMode,radius,minAltitude,maxAltitude){var circle=new sec.geo.shape.Circle();circle.setAltitudeMode(altitudeMode);circle.setPivot(new sec.geo.GeoPoint(pivotX,pivotY));circle.setRadius(radius);circle.setMinAltitude(minAltitude);circle.setMaxAltitude(maxAltitude);return circle;},getOrbit:function(point1X,point1Y,point2X,point2Y,altitudeMode,width,minAltitude,maxAltitude){var orbit=new sec.geo.shape.Orbit();orbit.addPoint(new sec.geo.GeoPoint(point1X,point1Y));orbit.addPoint(new sec.geo.GeoPoint(point2X,point2Y));orbit.setAltitudeMode(altitudeMode);orbit.setWidth(width);orbit.setMinAltitude(minAltitude);orbit.setMaxAltitude(maxAltitude);return orbit;},getRoute:function(points,altitudeMode,leftWidth,rightWidth,minAltitude,maxAltitude){var route=new sec.geo.shape.Route();route.setAltitudeMode(altitudeMode);route.setLeftWidth(leftWidth);route.setRightWidth(rightWidth);route.setMinAltitude(minAltitude);route.setMaxAltitude(maxAltitude);var aext=new sec.geo.shape.AExtObject(route);sec.geo.kml.XsltCoordinateWrapper.addPoints(points,aext);return route;},getPolygon:function(points,altitudeMode,minAltitude,maxAltitude){var polygon=new sec.geo.shape.Polygon();polygon.setAltitudeMode(altitudeMode);polygon.setMinAltitude(minAltitude);polygon.setMaxAltitude(maxAltitude);var aext=new sec.geo.shape.AExtObject(polygon);sec.geo.kml.XsltCoordinateWrapper.addPoints(points,aext);return polygon;},getRadarc:function(pivotX,pivotY,altitudeMode,innerRadius,outerRadius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var radarc=new sec.geo.shape.Radarc();radarc.setAltitudeMode(altitudeMode);radarc.setPivot(new sec.geo.GeoPoint(pivotX,pivotY));radarc.setMinRadius(innerRadius);radarc.setRadius(outerRadius);radarc.setLeftAzimuthDegrees(leftAzimuth);radarc.setRightAzimuthDegrees(rightAzimuth);radarc.setMinAltitude(minAltitude);radarc.setMaxAltitude(maxAltitude);return radarc;},getPolyarc:function(points,pivotX,pivotY,altitudeMode,radius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var polyarc=new sec.geo.shape.Polyarc();polyarc.setAltitudeMode(altitudeMode);polyarc.setPivot(new sec.geo.GeoPoint(pivotX,pivotY));polyarc.setRadius(radius);polyarc.setLeftAzimuthDegrees(leftAzimuth);polyarc.setRightAzimuthDegrees(rightAzimuth);polyarc.setMinAltitude(minAltitude);polyarc.setMaxAltitude(maxAltitude);var aext=new sec.geo.shape.AExtObject(polyarc);sec.geo.kml.XsltCoordinateWrapper.addPoints(points,aext);return polyarc;},getLineKml:function(points,id,name,description,color,altitudeMode,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getLine(points,altitudeMode,minAltitude,maxAltitude),id,name,description,color);},getCircleKml:function(pivotX,pivotY,id,name,description,color,altitudeMode,radius,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getCircle(pivotX,pivotY,altitudeMode,radius,minAltitude,maxAltitude),id,name,description,color);},getOrbitKml:function(point1X,point1Y,point2X,point2Y,id,name,description,color,altitudeMode,width,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getOrbit(point1X,point1Y,point2X,point2Y,altitudeMode,width,minAltitude,maxAltitude),id,name,description,color);},getRouteKml:function(points,id,name,description,color,altitudeMode,leftWidth,rightWidth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getRoute(points,altitudeMode,leftWidth,rightWidth,minAltitude,maxAltitude),id,name,description,color);},getPolygonKml:function(points,id,name,description,color,altitudeMode,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getPolygon(points,altitudeMode,minAltitude,maxAltitude),id,name,description,color);},getRadarcKml:function(pivotX,pivotY,id,name,description,color,altitudeMode,innerRadius,outerRadius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getRadarc(pivotX,pivotY,altitudeMode,innerRadius,outerRadius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude),id,name,description,color);},getPolyarcKml:function(points,pivotX,pivotY,id,name,description,color,altitudeMode,radius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getKml(sec.geo.kml.XsltCoordinateWrapper.getPolyarc(points,pivotX,pivotY,altitudeMode,radius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude),id,name,description,color);},plotLine:function(points,altitudeMode,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getLine(points,altitudeMode,minAltitude,maxAltitude));},plotCircle:function(pivotX,pivotY,altitudeMode,radius,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getCircle(pivotX,pivotY,altitudeMode,radius,minAltitude,maxAltitude));},plotOrbit:function(point1X,point1Y,point2X,point2Y,altitudeMode,width,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getOrbit(point1X,point1Y,point2X,point2Y,altitudeMode,width,minAltitude,maxAltitude));},plotRoute:function(points,altitudeMode,leftWidth,rightWidth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getRoute(points,altitudeMode,leftWidth,rightWidth,minAltitude,maxAltitude));},plotPolygon:function(points,altitudeMode,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getPolygon(points,altitudeMode,minAltitude,maxAltitude));},plotRadarc:function(pivotX,pivotY,altitudeMode,innerRadius,outerRadius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getRadarc(pivotX,pivotY,altitudeMode,innerRadius,outerRadius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude));},plotPolyarc:function(points,pivotX,pivotY,altitudeMode,radius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude){var renderer=new sec.geo.kml.KmlRenderer();return renderer.getCoords(sec.geo.kml.XsltCoordinateWrapper.getPolyarc(points,pivotX,pivotY,altitudeMode,radius,leftAzimuth,rightAzimuth,minAltitude,maxAltitude));},addPoints:function(points,path)
- {var coords=null;for(var sPoint,$sPoint=0,$$sPoint=points;$sPoint<$$sPoint.length&&((sPoint=$$sPoint[$sPoint])||true);$sPoint++){coords=sPoint.$plit(",");var longitude=Double.parseDouble(coords[0]);var latitude=Double.parseDouble(coords[1]);path.addPoint(new sec.geo.GeoPoint(longitude,latitude));}}};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.MilStdAttributes=armyc2.c2sd.renderer.utilities.MilStdAttributes||{};armyc2.c2sd.renderer.utilities.MilStdAttributes.LineColor="LINECOLOR";armyc2.c2sd.renderer.utilities.MilStdAttributes.FillColor="FILLCOLOR";armyc2.c2sd.renderer.utilities.MilStdAttributes.LineWidth="LINEWIDTH";armyc2.c2sd.renderer.utilities.MilStdAttributes.PixelSize="SIZE";armyc2.c2sd.renderer.utilities.MilStdAttributes.KeepUnitRatio="KEEPUNITRATIO";armyc2.c2sd.renderer.utilities.MilStdAttributes.SymbologyStandard="SYMSTD";armyc2.c2sd.renderer.utilities.MilStdAttributes.Icon="ICON";var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.RendererUtilities=(function(){var pastTextMeasurements={};var pastIdealOutlineColors={};var _canvas=document.createElement("canvas");_canvas.width=100;_canvas.height=100;var _ctx=_canvas.getContext('2d');_ctx.textBaseline='top';function scanForCharTopAndBottom(pixels,width,height,widthLimit)
- {var top=-1,bottom=-1;var row=0,col=0;var hit=false;for(row=0;row<height;row++)
- {if(hit===true||top===-1)
- {hit=false;for(col=0;col<widthLimit;col++)
- {var index=((row*width)+col)*4;if(top===-1&&pixels[index]!==0)
- {top=row-1;col=width-1;hit=true;}
- else if(pixels[index]!==0)
- {hit=true;bottom=row+1;col=width-1;}}}}
- return{top:top,bottom:bottom};};function getFontWidthHeightAndDescent(font,text)
- {var width=100,height=100;_ctx.font=font;_ctx.fillStyle='black';_ctx.fillRect(0,0,width,height);_ctx.fillStyle='white';_ctx.fillText("M",0,0);var mWidth=Math.ceil(_ctx.measureText("M").width);var gWidth=Math.ceil(_ctx.measureText("g").width);var pixels=_ctx.getImageData(0,0,width,height).data;var mtb=scanForCharTopAndBottom(pixels,width,height,mWidth);_ctx.fillStyle='black';_ctx.fillRect(0,0,width,height);_ctx.fillStyle='white';_ctx.fillText("g",0,0);pixels=_ctx.getImageData(0,0,width,height).data;var gtb=scanForCharTopAndBottom(pixels,width,height,gWidth);var height=mtb.bottom-mtb.top;var descent=gtb.bottom-mtb.bottom;var fullHeight=gtb.bottom-mtb.top;var textWidth=0;if(text)
- textWidth=_ctx.measureText(text).width;return{width:textWidth,height:height,descent:descent,fullHeight:fullHeight};};function measureTextQuick(fontName,fontSize,fontStyle,text){var doc=document;var div=doc.createElement('DIV');div.innerHTML=text;div.style.position='absolute';div.style.top='-999px';div.style.fontFamily=fontName;div.style.fontWeight=fontStyle?'bold':'normal';div.style.fontSize=fontSize+'pt';doc.body.appendChild(div);var size=[div.offsetWidth,div.offsetHeight];doc.body.removeChild(div);div=null;return size;};return{getIdealOutlineColor:function(color){var idealColor=null;if(pastIdealOutlineColors[color])
- {return pastIdealOutlineColors[color];}
- if(color!==null&&color!==""){var tempColor=color;if(tempColor.length===9)
- tempColor="#"+tempColor.substring(3);var threshold=armyc2.c2sd.renderer.utilities.RendererSettings.getTextBackgroundAutoColorThreshold();var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(tempColor);var r=parseInt(result[1],16),g=parseInt(result[2],16),b=parseInt(result[3],16);var delta=((r*0.299)+(g*0.587)+(b*0.114));if((255-delta<threshold))
- {idealColor="#000000";}
- else
- {idealColor="#FFFFFF";}}
- pastIdealOutlineColors[color]=idealColor;return idealColor;},measureText:function(fontName,fontSize,fontStyle,text,ctx){var font=fontStyle+" "+fontSize+"pt "+fontName;var size;size=this.measureTextWithFontString(font,text,ctx);return size;},measureTextWithFontString:function(font,text,ctx){var size;if(pastTextMeasurements[font])
- {size=pastTextMeasurements[font];if(text)
- {if(!(ctx))
- {var canvas=document.createElement("canvas");ctx.font=font;var ctx=canvas.getContext('2d');}
- size.width=ctx.measureText(text).width;}
- else
- size.width=0;}
- else
- {size=getFontWidthHeightAndDescent(font,text,ctx);pastTextMeasurements[font]={height:size.height,fullHeight:size.fullHeight,descent:size.descent};}
- return size;},measureTextHeight:function(fontName,fontSize,fontStyle)
- {var fontString=fontStyle+" "+fontSize+"pt "+fontName;var size=this.measureTextHeightWithFontString(fontString);return size;},measureTextHeightWithFontString:function(fontString){var size;if(pastTextMeasurements[fontString])
- {return pastTextMeasurements[fontString];}
- size=getFontWidthHeightAndDescent(fontString);pastTextMeasurements[fontString]={height:size.height,fullHeight:size.fullHeight,descent:size.descent};return size;},measureTextWidthWithFontString:function(text,context,fontString){var width;if(context!==null)
- {width=context.measureText(text).width;}
- else
- {_ctx.font=fontString;width=_ctx.measureText(text).width;}
- return width;},measureTextWidth:function(text,context,fontName,fontSize,fontStyle)
- {if(context)
- {var width=context.measureText(text).width;return width;}
- else
- {var fontString=fontStyle+" "+fontSize+"pt "+fontName;return measureTextWidthWithFontString(text,context,fontString);}},getTextBounds:function(context,text,location,font){var size;var height,fullHeight,descent,width,bounds;if(font)
- {size=this.measureTextWithFontString(font,text,context);}
- else
- {size=this.measureTextWithFontString(context.font,text,context);}
- height=size.height;fullHeight=size.fullHeight;descent=size.descent;width=size.width;bounds=new armyc2.c2sd.renderer.so.Rectangle(location.getX(),location.getY()-height,Math.round(width),fullHeight);return bounds;},getFontDescent:function(fontName,fontSize,fontStyle,text){var fontString=fontStyle+" "+fontSize+"pt "+fontName;var size;if(pastTextMeasurements[fontString])
- {return pastTextMeasurements[fontString].descent;}
- size=this.measureText(fontName,fontSize,fontStyle);pastTextMeasurements[fontString]={height:size.height,fullHeight:size.fullHeight,descent:size.descent};return size.descent;},fontsLoaded:function(){var returnVal=false;var arialWidth=measureTextQuick("Arial",12,"normal","A")[0]*2;var unitWidth=measureTextQuick("UnitFont",12,"normal","A")[0];var spWidth=measureTextQuick("SinglePoint",12,"normal","A")[0];var tgWidth=measureTextQuick("TacticalGraphics",12,"normal","A")[0];if(unitWidth>arialWidth&&spWidth>arialWidth&&tgWidth>arialWidth)
- returnVal=true;return returnVal;}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.ImageInfo=function(image,centerPoint,symbolBounds,bounds){this._canvas=image;this._center=centerPoint;this._symbolBounds=symbolBounds;this._bounds=bounds;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.toDataUrl=function(){return this._canvas.toDataURL();};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getImage=function(){return this._canvas;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getCenterPoint=function(){return this._center;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getSymbolBounds=function(){return this._symbolBounds;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getImageBounds=function(){return this._bounds;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getSquareIcon=function(){var iwidth,iheight,x,y;var width=this._bounds.getWidth();var height=this._bounds.getHeight();if(this._bounds.getWidth()>this._bounds.getHeight())
- {iwidth=this._bounds.getWidth();iheight=this._bounds.getWidth();x=0;y=(iheight-height)/2;}
- else if(this._bounds.getWidth()<this._bounds.getHeight())
- {iwidth=this._bounds.getHeight();iheight=this._bounds.getHeight();x=(iwidth-width)/2;y=0;}
- else
- {iwidth=this._bounds.getWidth();iheight=this._bounds.getHeight();x=0;y=0;}
- var buffer=document.createElement('canvas');buffer.width=iwidth;buffer.height=iheight;var ctx=buffer.getContext('2d');ctx.drawImage(this.getImage(),x,y);return buffer;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getCenteredImage=function(){var image=this._canvas,bi=null,x=0,y=0,height=image.height,width=image.width,point=this._center;try
- {if(point.getY()>height-point.getY())
- {height=(point.getY()*2.0);y=0;}
- else
- {height=((height-point.getY())*2);y=((height/2)-point.getY());}
- if(point.getX()>width-point.getX())
- {width=(point.getX()*2.0);x=0;}
- else
- {width=((width-point.getX())*2);x=((width/2)-point.getX());}
- bi=document.createElement('canvas');bi.width=width;bi.height=height;var ctx=bi.getContext('2d');ctx.drawImage(image,x,y);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("ImageInfo","getCenteredImage",err);}
- return bi;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getCenteredImageInfo=function(){var image=this._canvas,bi=null,ii=null,x=0,y=0,height=image.height,width=image.width,point=this._center;try
- {if(point.getY()>height-point.getY())
- {height=(point.getY()*2.0);y=0;}
- else
- {height=((height-point.getY())*2);y=((height/2)-point.getY());}
- if(point.getX()>width-point.getX())
- {width=(point.getX()*2.0);x=0;}
- else
- {width=((width-point.getX())*2);x=((width/2)-point.getX());}
- bi=document.createElement('canvas');bi.width=width;bi.height=height;var ctx=bi.getContext('2d');ctx.drawImage(image,x,y);var center=point.clone();center.shift(x,y);var symbolBounds=this._symbolBounds.clone();symbolBounds.shift(x,y);var bounds=new armyc2.s2sd.renderer.so.Rectangle(0,0,width,height);ii=new armyc2.c2sd.renderer.utilities.ImageInfo(bi,center,symbolBounds,bounds);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("ImageInfo","getCenteredImage",err);}
- return ii;};armyc2.c2sd.renderer.utilities.ImageInfo.prototype.getSquareImageInfo=function(){var iwidth,iheight,x,y;var width=this._bounds.getWidth();var height=this._bounds.getHeight();var ii=null;if(this._bounds.getWidth()>this._bounds.getHeight())
- {iwidth=this._bounds.getWidth();iheight=this._bounds.getWidth();x=0;y=(iheight-height)/2;}
- else if(this._bounds.getWidth()<this._bounds.getHeight())
- {iwidth=this._bounds.getHeight();iheight=this._bounds.getHeight();x=(iwidth-width)/2;y=0;}
- else
- {iwidth=this._bounds.getWidth();iheight=this._bounds.getHeight();x=0;y=0;}
- var buffer=document.createElement('canvas');buffer.width=iwidth;buffer.height=iheight;var ctx=buffer.getContext('2d');ctx.drawImage(this.getImage(),x,y);var center=this._center.clone();center.shift(x,y);var symbolBounds=this._symbolBounds.clone();symbolBounds.shift(x,y);var bounds=new armyc2.c2sd.renderer.so.Rectangle(0,0,iwidth,iheight);ii=new armyc2.c2sd.renderer.utilities.ImageInfo(buffer,center,symbolBounds,bounds);return ii;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.TextInfo=function(text,x,y,context,font){this.text=text;this.location=new armyc2.c2sd.renderer.so.Point(x,y);if(context===undefined)
- {var buffer=createBuffer(1,1);context=buffer.getContext('2d');}
- this.bounds=armyc2.c2sd.renderer.utilities.RendererUtilities.getTextBounds(context,text,this.location,font);};armyc2.c2sd.renderer.utilities.TextInfo.prototype.setLocation=function(x,y){var x1=this.location.getX(),y1=this.location.getY(),x2=x,y2=y;this.location.setLocation(x,y);var shiftX=0,shiftY=0;if(x2<x1)
- {shiftX=(x1-x2)*-1;}
- else
- {shiftX=(x2-x1);}
- if(y2<y1)
- {shiftY=(y1-y2)*-1;}
- else
- {shiftY=(y2-y1);}
- this.bounds.shift(shiftX,shiftY);};armyc2.c2sd.renderer.utilities.TextInfo.prototype.shift=function(x,y){this.location.shift(x,y);this.bounds.shift(x,y);};armyc2.c2sd.renderer.utilities.TextInfo.prototype.getTextBounds=function(){return this.bounds;};armyc2.c2sd.renderer.utilities.TextInfo.prototype.getTextOutlineBounds=function(){var outlineOffset=armyc2.c2sd.renderer.utilities.RendererSettings.getTextOutlineWidth();if(outlineOffset>0)
- {var bounds=new armyc2.c2sd.renderer.so.Rectangle(this.bounds.x-outlineOffset,this.bounds.y-outlineOffset,this.bounds.width+outlineOffset*2,this.bounds.height+outlineOffset*2);return bounds;}
- else
- {return this.bounds;}};armyc2.c2sd.renderer.utilities.TextInfo.prototype.getText=function(){return this.text;};armyc2.c2sd.renderer.utilities.TextInfo.prototype.getLocation=function(){return this.location;};armyc2.c2sd.renderer.utilities.TextInfo.prototype.outlineText=function(context){var thickness=armyc2.c2sd.renderer.utilities.RendererSettings.getTextOutlineWidth();for(var i=1;i<=thickness;i++)
- {if(i%2!==0)
- {context.fillText(this.text,this.location.getX()-i,this.location.getY()-i);context.fillText(this.text,this.location.getX()+i,this.location.getY()-i);context.fillText(this.text,this.location.getX()-i,this.location.getY()+i);context.fillText(this.text,this.location.getX()+i,this.location.getY()+i);}
- else
- {context.fillText(this.text,this.location.getX()-i,this.location.getY());context.fillText(this.text,this.location.getX()+i,this.location.getY());context.fillText(this.text,this.location.getX(),this.location.getY()+i);context.fillText(this.text,this.location.getX(),this.location.getY()-i);}}};armyc2.c2sd.renderer.utilities.TextInfo.prototype.strokeText=function(context){context.strokeText(this.text,this.location.getX(),this.location.getY());};armyc2.c2sd.renderer.utilities.TextInfo.prototype.fillText=function(context){context.fillText(this.text,this.location.getX(),this.location.getY());};armyc2.c2sd.renderer.utilities.TextInfo.prototype.createBuffer=function(width,height)
- {var buffer=document.createElement('canvas');buffer.width=width;buffer.height=height;return buffer;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.ModifiersUnits={A_SYMBOL_ICON:"A",B_ECHELON:"B",C_QUANTITY:"C",D_TASK_FORCE_INDICATOR:"D",E_FRAME_SHAPE_MODIFIER:"E",F_REINFORCED_REDUCED:"F",G_STAFF_COMMENTS:"G",H_ADDITIONAL_INFO_1:"H",H1_ADDITIONAL_INFO_2:"H1",H2_ADDITIONAL_INFO_3:"H2",J_EVALUATION_RATING:"J",K_COMBAT_EFFECTIVENESS:"K",L_SIGNATURE_EQUIP:"L",M_HIGHER_FORMATION:"M",N_HOSTILE:"N",P_IFF_SIF:"P",Q_DIRECTION_OF_MOVEMENT:"Q",R_MOBILITY_INDICATOR:"R",R2_SIGNIT_MOBILITY_INDICATOR:"R2",S_HQ_STAFF_OR_OFFSET_INDICATOR:"S",T_UNIQUE_DESIGNATION_1:"T",T1_UNIQUE_DESIGNATION_2:"T1",V_EQUIP_TYPE:"V",W_DTG_1:"W",W1_DTG_2:"W1",X_ALTITUDE_DEPTH:"X",Y_LOCATION:"Y",Z_SPEED:"Z",AA_SPECIAL_C2_HQ:"AA",AB_FEINT_DUMMY_INDICATOR:"AB",AC_INSTALLATION:"AC",AD_PLATFORM_TYPE:"AD",AE_EQUIPMENT_TEARDOWN_TIME:"AE",AF_COMMON_IDENTIFIER:"AF",AG_AUX_EQUIP_INDICATOR:"AG",AH_AREA_OF_UNCERTAINTY:"AH",AI_DEAD_RECKONING_TRAILER:"AI",AJ_SPEED_LEADER:"AJ",AK_PAIRING_LINE:"AK",AL_OPERATIONAL_CONDITION:"AL",AO_ENGAGEMENT_BAR:"AO",CC_COUNTRY_CODE:"CC",CN_CPOF_NAME_LABEL:"CN"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SinglePointLookupInfo=function(basicSymbolID,description,mappingP,mappingA,width,height){var _SymbolID=basicSymbolID,_Description=description,_mappingP=mappingP,_mappingA=mappingA,_width=width,_height=height;this.getBasicSymbolID=function(){return _SymbolID;};this.getDescription=function(){return _Description;};this.getMappingA=function(){return _mappingA;};this.getMappingP=function(){return _mappingP;};this.getWidth=function(){return _width;};this.getHeight=function(){return _height;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.UnitFontLookupInfo=function(basicSymbolID,description,mapping1U,mapping1F,mapping1N,mapping1H,mapping1Color,mapping2,mapping2Color){var _SymbolID=basicSymbolID,_Description=description,_mapping1U=mapping1U,_mapping1F=mapping1F,_mapping1N=mapping1N,_mapping1H=mapping1H,_mapping1Color=mapping1Color,_mapping2=mapping2,_mapping2Color=mapping2Color;this.getBasicSymbolID=function(){return _SymbolID;};this.getDescription=function(){return _Description;};this.getMapping1=function(symbolID){var affiliation=symbolID.charAt(1);if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- return _mapping1F;else if(affiliation==='H'||affiliation==='S')
- return _mapping1H;if(affiliation==='N'||affiliation==='L')
- return _mapping1N;else
- return _mapping1U;};this.getMapping2=function(){return _mapping2;};this.getColor1=function(){return _mapping1Color;};this.getColor2=function(){return _mapping2Color;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.TacticalGraphicLookup=(function(){var symbols=null,symbolMap=null,parser,spMappingXml={"TACTICALGRAPHICS":{"SYMBOL":[{"SYMBOLID":"G*T*B-----****X","MAPPING":"2001","DESCRIPTION":"Tactical Graphics_ Tasks_Block"},{"SYMBOLID":"G*T*H-----****X","MAPPING":"2002","DESCRIPTION":"Tactical Graphics_ Tasks_Breach"},{"SYMBOLID":"G*T*Y-----****X","MAPPING":"2003","DESCRIPTION":"Tactical Graphics_Tasks_Bypass"},{"SYMBOLID":"G*T*C-----****X","MAPPING":"2004","DESCRIPTION":"Tactical Graphics_Tasks_Canalize"},{"SYMBOLID":"G*T*X-----****X","MAPPING":"2005","DESCRIPTION":"Tactical Graphics_Tasks_Clear"},{"SYMBOLID":"G*T*J-----****X","MAPPING":"2006","DESCRIPTION":"Tactical Graphics_Tasks_Contain"},{"SYMBOLID":"G*T*K-----****X","MAPPING":"2007","DESCRIPTION":"Tactical Graphics_Tasks_Counterattach (CATK)"},{"SYMBOLID":"G*T*KF----****X","MAPPING":"2008","DESCRIPTION":"Tactical Graphics_Tasks_Counterattack (CATK)_Counterattack By Fire"},{"SYMBOLID":"G*T*L-----****X","MAPPING":"2009","DESCRIPTION":"Tactical Graphics_Tasks_Delay"},{"SYMBOLID":"G*T*T-----****X","MAPPING":"2011","DESCRIPTION":"Tactical Graphics_Tasks_Disrupt "},{"SYMBOLID":"G*T*F-----****X","MAPPING":"2012","DESCRIPTION":"Tactical Graphics_Tasks_Fix"},{"SYMBOLID":"G*T*A-----****X","MAPPING":"2013","DESCRIPTION":"Tactical Graphics_Tasks_Follow And Assume"},{"SYMBOLID":"G*T*AS----****X","MAPPING":"2014","DESCRIPTION":"Tactical Graphics_Tasks_Follow And Assume_Follow And Support "},{"SYMBOLID":"G*T*E-----****X","MAPPING":"2016","DESCRIPTION":"Tactical Graphics_Tasks_Isolate"},{"SYMBOLID":"G*T*O-----****X","MAPPING":"2018","DESCRIPTION":"Tactical Graphics_Tasks_Occupy"},{"SYMBOLID":"G*T*P-----****X","MAPPING":"2019","DESCRIPTION":"Tactical Graphics_Tasks_Penetrate"},{"SYMBOLID":"G*T*R-----****X","MAPPING":"2020","DESCRIPTION":"Tactical Graphics_Tasks_Relief In Place (RIP)"},{"SYMBOLID":"G*T*Q-----****X","MAPPING":"2021","DESCRIPTION":"Tactical Graphics_Tasks_Retain"},{"SYMBOLID":"G*T*M-----****X","MAPPING":"2022","DESCRIPTION":"Tactical Graphics_Tasks_Retirement"},{"SYMBOLID":"G*T*S-----****X","MAPPING":"2023","DESCRIPTION":"Tactical Graphics_Tasks_Secure"},{"SYMBOLID":"G*T*US----****X","MAPPING":"2024","DESCRIPTION":"Tactical Graphics_Tasks_Security_Screen"},{"SYMBOLID":"G*T*UG----****X","MAPPING":"2025","DESCRIPTION":"Tactical Graphics_Tasks_Security_Guard"},{"SYMBOLID":"G*T*UC----****X","MAPPING":"2026","DESCRIPTION":"Tactical Graphics_Tasks_Security_Cover"},{"SYMBOLID":"G*T*Z-----****X","MAPPING":"2027","DESCRIPTION":"Tactical Graphics_Tasks_Seize"},{"SYMBOLID":"G*T*W-----****X","MAPPING":"2028","DESCRIPTION":"Tactical Graphics_Tasks_Withdraw"},{"SYMBOLID":"G*T*WP----****X","MAPPING":"2029","DESCRIPTION":"Tactical Graphics_Tasks_Withdraw_Withdraw Under Pressure "},{"SYMBOLID":"G*T*V-----****X","MAPPING":"2016","DESCRIPTION":"Tactical Graphics_Tasks_Cordon_and_Search "},{"SYMBOLID":"G*T*2-----****X","MAPPING":"2016","DESCRIPTION":"Tactical Graphics_Tasks_Cordon_and_Knock "},{"SYMBOLID":"G*G*GLB---****X","MAPPING":"2030","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Boundaries "},{"SYMBOLID":"G*G*GLF---****X","MAPPING":"2031","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Forward Line Of Own Troops (Flot)"},{"SYMBOLID":"G*G*GLC---****X","MAPPING":"2032","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Line Of Contact "},{"SYMBOLID":"G*G*GLP---****X","MAPPING":"2033","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Phase Line "},{"SYMBOLID":"G*G*GLL---****X","MAPPING":"2034","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Light Line "},{"SYMBOLID":"G*G*GAG---****X","MAPPING":"2035","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_General Area"},{"SYMBOLID":"G*G*GAA---****X","MAPPING":"2036","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Assembly Area"},{"SYMBOLID":"G*G*GAE---****X","MAPPING":"2037","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Engagement Area"},{"SYMBOLID":"G*G*GAF---****X","MAPPING":"2038","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Lines_Fortified Area"},{"SYMBOLID":"G*G*GAD---****X","MAPPING":"2039","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Drop Zone "},{"SYMBOLID":"G*G*GAX---****X","MAPPING":"2040","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Area_Extraction Zone (EZ)"},{"SYMBOLID":"G*G*GAL---****X","MAPPING":"2041","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Landing Zone (LZ)"},{"SYMBOLID":"G*G*GAP---****X","MAPPING":"2042","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Pickup Zone (PZ)"},{"SYMBOLID":"G*G*GAS---****X","MAPPING":"2043","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Search Area/Reconnaissance Area"},{"SYMBOLID":"G*G*GAY---****X","MAPPING":"2044","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Limited Access Area"},{"SYMBOLID":"G*G*GAZ---****X","MAPPING":"2045","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_General_Areas_Airfield Zone "},{"SYMBOLID":"G*G*ALC---****X","MAPPING":"2046","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Lines_Air Corridor "},{"SYMBOLID":"G*G*ALM---****X","MAPPING":"2047","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Lines_Minimum Risk Route (MRR) "},{"SYMBOLID":"G*G*ALS---****X","MAPPING":"2048","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Lines_Standard-Use Army Aircraft Flight Route (SAAFR) "},{"SYMBOLID":"G*G*ALU---****X","MAPPING":"2049","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Lines_Unmanned Aerial Vehicle (UAV) Route "},{"SYMBOLID":"G*G*ALL---****X","MAPPING":"2050","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Lines_Low Level Transit Route (LLTR)"},{"SYMBOLID":"G*G*AAR---****X","MAPPING":"2051","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Restricted Operations Zone (ROZ)"},{"SYMBOLID":"G*G*AAF---****X","MAPPING":"2052","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Forward Area Ari Defense Zone (FAADEZ)"},{"SYMBOLID":"G*G*AAF---2525C","MAPPING":"2053","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_SHORT-RANGE_AIR_DEFENSE_ENGAGEMENT_ZONE (SHORADEZ)"},{"SYMBOLID":"G*G*AAH---****X","MAPPING":"2054","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_High Density Airpspace Control Zone (Hidacz) "},{"SYMBOLID":"G*G*AAM---****X","MAPPING":"2055","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Missile Engagement Zone (MEZ) "},{"SYMBOLID":"G*G*AAML--****X","MAPPING":"2056","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Missile Enagement Zone (MEZ) Low Altitude Mez "},{"SYMBOLID":"G*G*AAMH--****X","MAPPING":"2057","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Missile Engagement Zone (MEZ)_High Altitude MEZ"},{"SYMBOLID":"G*G*AAW---****X","MAPPING":"2058","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Aviation_Areas_Weapoins Free Zone "},{"SYMBOLID":"G*G*PD----****X","MAPPING":"2059","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Dummy (Deception) (Decoy) "},{"SYMBOLID":"G*G*PA----****X","MAPPING":"2060","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Axis Of Advance For Feint "},{"SYMBOLID":"G*G*PF----****X","MAPPING":"2061","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Direction Of Attack For Feint "},{"SYMBOLID":"G*G*PM----****X","MAPPING":"2062","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Decoy Mined Area"},{"SYMBOLID":"G*G*PY----****X","MAPPING":"2063","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Decoy Mined Area, Fenced "},{"SYMBOLID":"G*G*PC----****X","MAPPING":"2064","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Deception_Dummy Minefield - Dynamic "},{"SYMBOLID":"G*G*DLF---****X","MAPPING":"2065","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Defense_Lines_Forward Edge Of Battle Area (FEBA) "},{"SYMBOLID":"G*G*DLP---****X","MAPPING":"2066","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Defense_Lines_Principal Direction Of Fire (PDF)"},{"SYMBOLID":"G*G*DAB---****X","MAPPING":"2067","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Defense_Areas_Battle Position"},{"SYMBOLID":"G*G*DABP--****X","MAPPING":"2068","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Defense_Areas_Battle Position_Prepared But Not Occupied "},{"SYMBOLID":"G*G*DAE---****X","MAPPING":"2069","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Defense_Area_Engagement Area"},{"SYMBOLID":"G*G*OLAV--****X","MAPPING":"2070","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Axis Of Advance_Friendly Aviation"},{"SYMBOLID":"G*G*OLAA--****X","MAPPING":"2071","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Axis Of Advance_Friendly Airborne "},{"SYMBOLID":"G*G*OLAR--****X","MAPPING":"2072","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Axis Of Advance_Friendly Attack, Rotory Wing "},{"SYMBOLID":"G*G*OLAGM-****X","MAPPING":"2073","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Axis Of Advance_Ground_Main Attack "},{"SYMBOLID":"G*G*OLAGS-****X","MAPPING":"2074","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Axis Of Advance_Ground_Support Attack"},{"SYMBOLID":"G*G*OLKA--****X","MAPPING":"2075","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Direction Of Attack_Aviation "},{"SYMBOLID":"G*G*OLKGM-****X","MAPPING":"2076","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Direction Of Attack_Ground_Main Attack"},{"SYMBOLID":"G*G*OLKGS-****X","MAPPING":"2077","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Direction Of Attack_Ground_ Supporting Attack"},{"SYMBOLID":"G*G*OLF---****X","MAPPING":"2078","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Final Coordination Line "},{"SYMBOLID":"G*G*OLI---****X","MAPPING":"2079","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Infiltration Line "},{"SYMBOLID":"G*G*OLL---****X","MAPPING":"2080","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Limit Of Advance "},{"SYMBOLID":"G*G*OLT---****X","MAPPING":"2081","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Line Of Departure "},{"SYMBOLID":"G*G*OLC---****X","MAPPING":"2082","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Line Of Departure/Line Of Contact (LD.LC)"},{"SYMBOLID":"G*G*OLP---****X","MAPPING":"2083","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Lines_Probable Line Of Deployment (PLD) "},{"SYMBOLID":"G*G*OAA---****X","MAPPING":"2084","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Assault Position"},{"SYMBOLID":"G*G*OAK---****X","MAPPING":"2085","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Attack Position"},{"SYMBOLID":"G*G*OAF---****X","MAPPING":"2086","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Attack By Fire Position "},{"SYMBOLID":"G*G*OAS---****X","MAPPING":"2087","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Support By Fire Position "},{"SYMBOLID":"G*G*OAO---****X","MAPPING":"2088","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Objective "},{"SYMBOLID":"G*G*OAP---****X","MAPPING":"2089","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Offense_Areas_Penetration BoX"},{"SYMBOLID":"G*G*SLA---****X","MAPPING":"2090","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Line_Ambush"},{"SYMBOLID":"G*G*SLH---****X","MAPPING":"2091","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Line_Holding Line "},{"SYMBOLID":"G*G*SLR---****X","MAPPING":"2092","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Line_Release Line "},{"SYMBOLID":"G*G*SLB---****X","MAPPING":"2093","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Bridgehead"},{"SYMBOLID":"G*G*SAO---****X","MAPPING":"2094","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Area Of Operations (AO)"},{"SYMBOLID":"G*G*SAA---****X","MAPPING":"2095","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Airhead "},{"SYMBOLID":"G*G*SAE---****X","MAPPING":"2096","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Encirclement "},{"SYMBOLID":"G*G*SAN---****X","MAPPING":"2097","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Named Area Of Interest (NAI)"},{"SYMBOLID":"G*G*SAT---****X","MAPPING":"2098","DESCRIPTION":"Tactical Graphics_Command And Control And General Maneuver_Special_Area_Targeted Area Of Interest (TAI) "},{"SYMBOLID":"G*M*OGB---****X","MAPPING":"2099","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_General_Belt "},{"SYMBOLID":"G*M*OGL---****X","MAPPING":"2100","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_General_Line "},{"SYMBOLID":"G*M*OGZ---****X","MAPPING":"2101","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_General_Zone"},{"SYMBOLID":"G*M*OGF---****X","MAPPING":"2102","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_General_Obstacle Free Area"},{"SYMBOLID":"G*M*OGR---****X","MAPPING":"2103","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_General_Obstacle Restricted Area"},{"SYMBOLID":"G*M*OS----****X","MAPPING":"2104","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Abatis "},{"SYMBOLID":"G*M*OADU--****X","MAPPING":"2105","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Antitank Obstacles_Antitank Ditch_Under Construction"},{"SYMBOLID":"G*M*OADC--****X","MAPPING":"2106","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Antitank Obstacles_Antitank Ditch_Complete "},{"SYMBOLID":"G*M*OAR---****X","MAPPING":"2107","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Antitank Obstacles_Antitank Ditch Reinforced With Antitank Mines "},{"SYMBOLID":"G*M*OAW---****X","MAPPING":"2108","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Antitank Obstacles_Antitank Wall"},{"SYMBOLID":"G*M*OMC---****X","MAPPING":"2109","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Mines_Mine Cluster "},{"SYMBOLID":"G*M*OFD---****X","MAPPING":"2110","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Minefields_Dynamic Depiction"},{"SYMBOLID":"G*M*OFG---****X","MAPPING":"2111","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Minefields_Gap"},{"SYMBOLID":"G*M*OFA---****X","MAPPING":"2112","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Minefields_Minded Area"},{"SYMBOLID":"G*M*OEB---****X","MAPPING":"2113","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Obstacle Effect_Block"},{"SYMBOLID":"G*M*OEF---****X","MAPPING":"2114","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Obstacle Effect_FiX"},{"SYMBOLID":"G*M*OET---****X","MAPPING":"2115","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Obstacle Effect_Turn"},{"SYMBOLID":"G*M*OED---****X","MAPPING":"2116","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Obstacle Effect_Disrupt "},{"SYMBOLID":"G*M*OU----****X","MAPPING":"2117","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Unexploed Ordinance Area (UXO)"},{"SYMBOLID":"G*M*ORP---****X","MAPPING":"2118","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Roadblocks, Craters, And Blown Bridges_Planned "},{"SYMBOLID":"G*M*ORS---****X","MAPPING":"2119","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Roadblocks, Craters, And Blown Bridges_Explosives, State Of Readiness 1 (Safe)"},{"SYMBOLID":"G*M*ORA---****X","MAPPING":"2120","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Roadblocks, Craters, And Blown Bridges_Explosives, State Of Readiness 2 (Armed-But Passable) "},{"SYMBOLID":"G*M*ORC---****X","MAPPING":"2121","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Roadblocks, Craters, And Blown Bridges_Roadblock Complete (Executed)"},{"SYMBOLID":"G*M*OT----****X","MAPPING":"2122","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Trip Wire"},{"SYMBOLID":"G*M*OWU---****X","MAPPING":"2123","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle Unspecified "},{"SYMBOLID":"G*M*OWS---****X","MAPPING":"2124","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_ Single Fence "},{"SYMBOLID":"G*M*OWD---****X","MAPPING":"2125","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Double Fence"},{"SYMBOLID":"G*M*OWA---****X","MAPPING":"2126","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Double Apron Fence "},{"SYMBOLID":"G*M*OWL---****X","MAPPING":"2127","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Low Wire Fence "},{"SYMBOLID":"G*M*OWH---****X","MAPPING":"2128","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_High Wire Fence "},{"SYMBOLID":"G*M*OWCS--****X","MAPPING":"2129","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Single Concertina "},{"SYMBOLID":"G*M*OWCD--****X","MAPPING":"2130","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Double Strand Concertina "},{"SYMBOLID":"G*M*OWCT--****X","MAPPING":"2131","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Wire Obsticle_Triple Strand Concertina "},{"SYMBOLID":"G*M*OHO---****X","MAPPING":"2133","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacles_Aviation Overhead Wire "},{"SYMBOLID":"G*M*BDE---****X","MAPPING":"2134","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Obstacle Bypass Difficulty_Bypass Easy"},{"SYMBOLID":"G*M*BDD---****X","MAPPING":"2135","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Obstacle Bypass Difficulty_Bypass Difficult "},{"SYMBOLID":"G*M*BDI---****X","MAPPING":"2136","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Obstacle Bypass Difficulty_Bypass Impossible "},{"SYMBOLID":"G*M*BCA---****X","MAPPING":"2137","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Assault Crossing Area"},{"SYMBOLID":"G*M*BCB---****X","MAPPING":"2138","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Bridge Or Gap "},{"SYMBOLID":"G*M*BCF---****X","MAPPING":"2139","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Ferry"},{"SYMBOLID":"G*M*BCE---****X","MAPPING":"2140","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Ford Easy"},{"SYMBOLID":"G*M*BCD---****X","MAPPING":"2141","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Ford Difficult "},{"SYMBOLID":"G*M*BCL---****X","MAPPING":"2142","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Lane "},{"SYMBOLID":"G*M*BCR---****X","MAPPING":"2143","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Obstacle Bypass_Crossing Site/Water Crossing_Raft Site"},{"SYMBOLID":"G*M*SL----****X","MAPPING":"2144","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Surivability_Fortified Line "},{"SYMBOLID":"G*M*SW----****X","MAPPING":"2145","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Surivability_Foxhole, Emplacement Or Weapon Site "},{"SYMBOLID":"G*M*SP----****X","MAPPING":"2146","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Surivability_Strong Point"},{"SYMBOLID":"G*M*NM----****X","MAPPING":"2147","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Nuclear, Biological And Chemical_Minimum Safe Distrance Zones "},{"SYMBOLID":"G*M*NR----****X","MAPPING":"2148","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Nuclear, Biological And Chemical_Radio Active Area"},{"SYMBOLID":"G*M*NB----****X","MAPPING":"2149","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Nuclear, Biological And Chemical_Biologically Contaminated Area"},{"SYMBOLID":"G*M*NC----****X","MAPPING":"2150","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Nuclear, Biological And Chemical_Chemically Contaminated Area"},{"SYMBOLID":"G*M*NL----****X","MAPPING":"2151","DESCRIPTION":"Tactical Graphics_Mobility/Survivability_Nuclear, Biological And Chemical_Dose Rate Contour Lines "},{"SYMBOLID":"G*F*LT----****X","MAPPING":"2152","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Linear Target "},{"SYMBOLID":"G*F*LTS---****X","MAPPING":"2153","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Linear Smoke Target"},{"SYMBOLID":"G*F*LTF---****X","MAPPING":"2154","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Final Protective Fire (FPF)"},{"SYMBOLID":"G*F*LCF---****X","MAPPING":"2155","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Fire Support Coordination Line (FSCL) "},{"SYMBOLID":"G*F*LCC---****X","MAPPING":"2156","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Coordinated Fire Line (CFL) "},{"SYMBOLID":"G*F*LCN---****X","MAPPING":"2157","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_No-Fire Line (NFL) "},{"SYMBOLID":"G*F*LCR---****X","MAPPING":"2158","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Restrictive Fire Line (RFL) "},{"SYMBOLID":"G*F*LCM---****X","MAPPING":"2159","DESCRIPTION":"Tactical Graphics_Fire Support_Lines_Munition Flight Path (MFP) "},{"SYMBOLID":"G*F*AT----****X","MAPPING":"2160","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Area Target "},{"SYMBOLID":"G*F*ATR---****X","MAPPING":"2161","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Area Target_Rectangular "},{"SYMBOLID":"G*F*ATC---****X","MAPPING":"2162","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Area Target_Circular"},{"SYMBOLID":"G*F*ATG---****X","MAPPING":"2163","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Series Or Group Of Targets "},{"SYMBOLID":"G*F*ATS---****X","MAPPING":"2164","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Smoke "},{"SYMBOLID":"G*F*ATB---****X","MAPPING":"2165","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_Bomb Area"},{"SYMBOLID":"G*F*ACSI--****X","MAPPING":"2166","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FSA_Irregular"},{"SYMBOLID":"G*F*ACSR--****X","MAPPING":"2167","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FSA_Rectangular"},{"SYMBOLID":"G*F*ACSC--****X","MAPPING":"2168","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FSA_Circular"},{"SYMBOLID":"G*F*ACAI--****X","MAPPING":"2169","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_ACA_Irregular"},{"SYMBOLID":"G*F*ACAR--****X","MAPPING":"2170","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_ACA_Rectangular"},{"SYMBOLID":"G*F*ACAC--****X","MAPPING":"2171","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_ACA_Circular"},{"SYMBOLID":"G*F*ACFI--****X","MAPPING":"2172","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FFA_Irregular"},{"SYMBOLID":"G*F*ACFR--****X","MAPPING":"2173","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FFA_Rectangular"},{"SYMBOLID":"G*F*ACFC--****X","MAPPING":"2174","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_FFA_Circular"},{"SYMBOLID":"G*F*ACNI--****X","MAPPING":"2175","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_NFA_Irregular"},{"SYMBOLID":"G*F*ACNR--****X","MAPPING":"2176","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_NFA_Rectangular"},{"SYMBOLID":"G*F*ACNC--****X","MAPPING":"2177","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_NFA_Circular"},{"SYMBOLID":"G*F*ACRI--****X","MAPPING":"2178","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_RFA_Irregular"},{"SYMBOLID":"G*F*ACRR--****X","MAPPING":"2179","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_RFA_Rectangular"},{"SYMBOLID":"G*F*ACRC--****X","MAPPING":"2180","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_RFA_Circular"},{"SYMBOLID":"G*F*ACPR--****X","MAPPING":"2181","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_PAA_Rectangular "},{"SYMBOLID":"G*F*ACPC--****X","MAPPING":"2182","DESCRIPTION":"Tactical Graphics_Fire Support_Areas_PAA_Circular "},{"SYMBOLID":"G*F*AZII--****X","MAPPING":"2183","DESCRIPTION":"ATI_Irregular"},{"SYMBOLID":"G*F*AZIR--****X","MAPPING":"2184","DESCRIPTION":"ATI_Rectangular"},{"SYMBOLID":"G*F*AZIC--****X","MAPPING":"2185","DESCRIPTION":"ATI_Circular"},{"SYMBOLID":"G*F*AZXI--****X","MAPPING":"2186","DESCRIPTION":"CFFZ_Irregular"},{"SYMBOLID":"G*F*AZXR--****X","MAPPING":"2187","DESCRIPTION":"CFFZ_Rectangular"},{"SYMBOLID":"G*F*AZXC--****X","MAPPING":"2188","DESCRIPTION":"CFFZ_Circular"},{"SYMBOLID":"G*F*AZSI--****X","MAPPING":"2189","DESCRIPTION":"Sensor_Irregular"},{"SYMBOLID":"G*F*ACEI--****X","MAPPING":"2189","DESCRIPTION":"Sensor_Irregular"},{"SYMBOLID":"G*F*AZSR--****X","MAPPING":"2190","DESCRIPTION":"Sensor_Rectangular"},{"SYMBOLID":"G*F*ACER--****X","MAPPING":"2190","DESCRIPTION":"Sensor_Rectangular"},{"SYMBOLID":"G*F*AZSC--****X","MAPPING":"2191","DESCRIPTION":"Sensor_Circular"},{"SYMBOLID":"G*F*ACEC--****X","MAPPING":"2191","DESCRIPTION":"Sensor_Circular"},{"SYMBOLID":"G*F*AZCI--****X","MAPPING":"2192","DESCRIPTION":"Censor_Irregular"},{"SYMBOLID":"G*F*AZCR--****X","MAPPING":"2193","DESCRIPTION":"Censor_Rectangular"},{"SYMBOLID":"G*F*AZCC--****X","MAPPING":"2194","DESCRIPTION":"Censor_Circular"},{"SYMBOLID":"G*F*AZDI--****X","MAPPING":"2195","DESCRIPTION":"DA_Irregular"},{"SYMBOLID":"G*F*ACDI--****X","MAPPING":"2195","DESCRIPTION":"DA_Irregular"},{"SYMBOLID":"G*F*AZDR--****X","MAPPING":"2196","DESCRIPTION":"DA_Rectangular"},{"SYMBOLID":"G*F*ACDR--****X","MAPPING":"2196","DESCRIPTION":"DA_Rectangular"},{"SYMBOLID":"G*F*AZDC--****X","MAPPING":"2197","DESCRIPTION":"DA_Circular"},{"SYMBOLID":"G*F*ACDC--****X","MAPPING":"2197","DESCRIPTION":"DA_Circular"},{"SYMBOLID":"G*F*AZFI--****X","MAPPING":"2217","DESCRIPTION":"CFZ_Irregular"},{"SYMBOLID":"G*F*AZFR--****X","MAPPING":"2218","DESCRIPTION":"CFZ_Rectangular"},{"SYMBOLID":"G*F*AZFC--****X","MAPPING":"2219","DESCRIPTION":"CFZ_Circular"},{"SYMBOLID":"G*F*AZZI--****X","MAPPING":"2198","DESCRIPTION":"ZOR_Irregular"},{"SYMBOLID":"G*F*ACZI--****X","MAPPING":"2198","DESCRIPTION":"ZOR_Irregular"},{"SYMBOLID":"G*F*AZZR--****X","MAPPING":"2199","DESCRIPTION":"ZOR_Rectangular"},{"SYMBOLID":"G*F*ACZR--****X","MAPPING":"2199","DESCRIPTION":"ZOR_Rectangular"},{"SYMBOLID":"G*F*AZZC--****X","MAPPING":"2200","DESCRIPTION":"ZOR_Circular"},{"SYMBOLID":"G*F*ACZC--****X","MAPPING":"2200","DESCRIPTION":"ZOR_Circular"},{"SYMBOLID":"G*F*AZBI--****X","MAPPING":"2201","DESCRIPTION":"TBA_Irregular"},{"SYMBOLID":"G*F*ACBI--****X","MAPPING":"2201","DESCRIPTION":"TBA_Irregular"},{"SYMBOLID":"G*F*AZBR--****X","MAPPING":"2202","DESCRIPTION":"TBA_Rectangular"},{"SYMBOLID":"G*F*ACBR--****X","MAPPING":"2202","DESCRIPTION":"TBA_Rectangular"},{"SYMBOLID":"G*F*AZBC--****X","MAPPING":"2203","DESCRIPTION":"TBA_Circular"},{"SYMBOLID":"G*F*ACBC--****X","MAPPING":"2203","DESCRIPTION":"TBA_Circular"},{"SYMBOLID":"G*F*AZVI--****X","MAPPING":"2204","DESCRIPTION":"TVAR_Irregular"},{"SYMBOLID":"G*F*ACVI--****X","MAPPING":"2204","DESCRIPTION":"TVAR_Irregular"},{"SYMBOLID":"G*F*AZVR--****X","MAPPING":"2205","DESCRIPTION":"TVAR_Rectangular"},{"SYMBOLID":"G*F*ACVR--****X","MAPPING":"2205","DESCRIPTION":"TVAR_Rectangular"},{"SYMBOLID":"G*F*AZVC--****X","MAPPING":"2206","DESCRIPTION":"TVAR_Circular"},{"SYMBOLID":"G*F*ACVC--****X","MAPPING":"2206","DESCRIPTION":"TVAR_Circular"},{"SYMBOLID":"G*F*ACT---****X","MAPPING":"2210","DESCRIPTION":"TGMF"},{"SYMBOLID":"G*F*AXC---****X","MAPPING":"2207","DESCRIPTION":"Range_Fan"},{"SYMBOLID":"G*F*AXS---****X","MAPPING":"2208","DESCRIPTION":"Sector_Range_Fan"},{"SYMBOLID":"G*F*AKBC--****X","MAPPING":"2219","DESCRIPTION":"BKB Circular"},{"SYMBOLID":"G*F*AKBI--****X","MAPPING":"2220","DESCRIPTION":"BKB Irregular"},{"SYMBOLID":"G*F*AKBR--****X","MAPPING":"2221","DESCRIPTION":"BKB Rectangular"},{"SYMBOLID":"G*F*AKPC--****X","MAPPING":"2222","DESCRIPTION":"PKB Circular"},{"SYMBOLID":"G*F*AKPI--****X","MAPPING":"2223","DESCRIPTION":"PKB Irregular"},{"SYMBOLID":"G*F*AKPR--****X","MAPPING":"2224","DESCRIPTION":"PKB Rectangular"},{"SYMBOLID":"G*S*LCM---****X","MAPPING":"2226","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Convoys_Moving Convoy"},{"SYMBOLID":"G*S*LCH---****X","MAPPING":"2227","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Convoys_Halted Convoy"},{"SYMBOLID":"G*S*LRM---****X","MAPPING":"2228","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Supply Routes_Main Supply Route"},{"SYMBOLID":"G*S*LRA---****X","MAPPING":"2229","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Supply Routes_Alternate Supply Route "},{"SYMBOLID":"G*S*LRO---****X","MAPPING":"2230","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Supply Routes_One-Way Traffic"},{"SYMBOLID":"G*S*LRT---****X","MAPPING":"2231","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Supply Routes_Alternating Traffic "},{"SYMBOLID":"G*S*LRW---****X","MAPPING":"2232","DESCRIPTION":"Tactical Graphics_Combat Service Support_Lines_Supply Routes_Two-Way Traffic "},{"SYMBOLID":"G*S*AD----****X","MAPPING":"2233","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Detainee Holding Area"},{"SYMBOLID":"G*S*AE----****X","MAPPING":"2234","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Enemy Prisoner Of War (EPW) Holding Area "},{"SYMBOLID":"G*S*AR----****X","MAPPING":"2235","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Forward Arming And Refueling Area (FARP) "},{"SYMBOLID":"G*S*AH----****X","MAPPING":"2236","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Refugee Holding Area"},{"SYMBOLID":"G*S*ASB---****X","MAPPING":"2237","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Support Areas_Brigade (BSA)"},{"SYMBOLID":"G*S*ASD---****X","MAPPING":"2238","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Support Areas_Division (DSA)"},{"SYMBOLID":"G*S*ASR---****X","MAPPING":"2239","DESCRIPTION":"Tactical Graphics_Combat Service Support_Area_Support Areas_Regimental (RSA)"},{"SYMBOLID":"G*O*HN----****X","MAPPING":"2240","DESCRIPTION":"Tactical Graphics_Other_Hazard_Navigational"},{"SYMBOLID":"G*O*B-----****X","MAPPING":"2241","DESCRIPTION":"Tactical Graphics_Other_Bearing Line"},{"SYMBOLID":"G*O*BE----****X","MAPPING":"2242","DESCRIPTION":"Tactical Graphics_Other_Bearing Line_Electronic"},{"SYMBOLID":"G*O*BA----****X","MAPPING":"2243","DESCRIPTION":"Tactical Graphics_Other_Bearing Line_Acoustic"},{"SYMBOLID":"G*O*BT----****X","MAPPING":"2244","DESCRIPTION":"Tactical Graphics_Other_Bearing Line_Torpedo"},{"SYMBOLID":"G*O*BO----****X","MAPPING":"2245","DESCRIPTION":"Tactical Graphics_Other_Bearing Line_Electro-Optical Intercept"},{"SYMBOLID":"WA-DPFC----L---","MAPPING":"3000","DESCRIPTION":"Cold Front"},{"SYMBOLID":"WA-DPFCU---L---","MAPPING":"3001","DESCRIPTION":"Upper Cold Front"},{"SYMBOLID":"WA-DPFC-FG-L---","MAPPING":"3002","DESCRIPTION":"Cold Frontogenisis"},{"SYMBOLID":"WA-DPFC-FY-L---","MAPPING":"3003","DESCRIPTION":"Cold Frontolysis"},{"SYMBOLID":"WA-DPFW----L---","MAPPING":"3004","DESCRIPTION":"Warm Front"},{"SYMBOLID":"WA-DPFWU---L---","MAPPING":"3005","DESCRIPTION":"Upper Warm Front "},{"SYMBOLID":"WA-DPFW-FG-L---","MAPPING":"3006","DESCRIPTION":"Warm Frontogenesis "},{"SYMBOLID":"WA-DPFW-FY-L---","MAPPING":"3007","DESCRIPTION":"Warm Frontolysis "},{"SYMBOLID":"WA-DPFO----L---","MAPPING":"3008","DESCRIPTION":"Occluded Front "},{"SYMBOLID":"WA-DPFOU---L---","MAPPING":"3009","DESCRIPTION":"Upper Occluded Front "},{"SYMBOLID":"WA-DPFO-FY-L---","MAPPING":"3010","DESCRIPTION":"Occluded Frontolysis "},{"SYMBOLID":"WA-DPFS----L---","MAPPING":"3011","DESCRIPTION":"Stationary Front"},{"SYMBOLID":"WA-DPFSU---L---","MAPPING":"3012","DESCRIPTION":"Upper Stationary Front"},{"SYMBOLID":"WA-DPFS-FG-L---","MAPPING":"3013","DESCRIPTION":"Stationary Frontogenesis"},{"SYMBOLID":"WA-DPFS-FY-L---","MAPPING":"3014","DESCRIPTION":"Stationary Frontolysis"},{"SYMBOLID":"WA-DPXT----L---","MAPPING":"3015","DESCRIPTION":"Trough Axis"},{"SYMBOLID":"WA-DPXR----L---","MAPPING":"3016","DESCRIPTION":"Ridge Line "},{"SYMBOLID":"WA-DPXSQ---L---","MAPPING":"3017","DESCRIPTION":"Squall Line "},{"SYMBOLID":"WA-DPXIL---L---","MAPPING":"3018","DESCRIPTION":"Instability Line "},{"SYMBOLID":"WA-DPXSH---L---","MAPPING":"3019","DESCRIPTION":"Shear Line "},{"SYMBOLID":"WA-DPXITCZ-L---","MAPPING":"3020","DESCRIPTION":"Inter-Tropical Convergance Zone "},{"SYMBOLID":"WA-DPXCV---L---","MAPPING":"3021","DESCRIPTION":"Convergance Line "},{"SYMBOLID":"WA-DPXITD--L---","MAPPING":"3022","DESCRIPTION":"Inter-Tropical Discontinuity "},{"SYMBOLID":"WAS-WP----P----","MAPPING":"3023","DESCRIPTION":"Wind Plot"},{"SYMBOLID":"WA-DWJ-----L---","MAPPING":"3030","DESCRIPTION":"Jet Stream Line"},{"SYMBOLID":"WA-DWS-----L---","MAPPING":"3031","DESCRIPTION":"Stream Line"},{"SYMBOLID":"WA-DWSTSWA--A--","MAPPING":"3032","DESCRIPTION":"Tropical Storm Wind Areas"},{"SYMBOLID":"WA-DBAIF----A--","MAPPING":"3034","DESCRIPTION":"IFR"},{"SYMBOLID":"WA-DBAMV----A--","MAPPING":"3035","DESCRIPTION":"MVFR "},{"SYMBOLID":"WA-DBATB----A--","MAPPING":"3036","DESCRIPTION":"Weather Turbulence"},{"SYMBOLID":"WA-DBAI-----A--","MAPPING":"3037","DESCRIPTION":"Weather Icing"},{"SYMBOLID":"WA-DBALPNC--A--","MAPPING":"3038","DESCRIPTION":"Precipitation Non-Convective "},{"SYMBOLID":"WA-DBALPC---A--","MAPPING":"3039","DESCRIPTION":"Precipitation Convective"},{"SYMBOLID":"WA-DBAFP----A--","MAPPING":"3040","DESCRIPTION":"Frozen Precipitation"},{"SYMBOLID":"WA-DBAT-----A--","MAPPING":"3041","DESCRIPTION":"Weather Thunderstorm "},{"SYMBOLID":"WA-DBAFG----A--","MAPPING":"3042","DESCRIPTION":"Weather Fog"},{"SYMBOLID":"WA-DBAD-----A--","MAPPING":"3043","DESCRIPTION":"Weather Sand"},{"SYMBOLID":"WA-DBAFF----A--","MAPPING":"3044","DESCRIPTION":"Weather Freeform "},{"SYMBOLID":"WA-DIPIB---L---","MAPPING":"3045","DESCRIPTION":"Isobar Surface"},{"SYMBOLID":"WA-DIPCO---L---","MAPPING":"3046","DESCRIPTION":"Upper Air"},{"SYMBOLID":"WA-DIPIS---L---","MAPPING":"3047","DESCRIPTION":"Isotherm "},{"SYMBOLID":"WA-DIPIT---L---","MAPPING":"3048","DESCRIPTION":"Isotach"},{"SYMBOLID":"WA-DIPID---L---","MAPPING":"3049","DESCRIPTION":"Isodrosotherm"},{"SYMBOLID":"WA-DIPTH---L---","MAPPING":"3050","DESCRIPTION":"Isopleths "},{"SYMBOLID":"WA-DIPFF---L---","MAPPING":"3051","DESCRIPTION":"Operator Freeform "},{"SYMBOLID":"WO-DILOV---L---","MAPPING":"3052","DESCRIPTION":"Limit of Visual Observation"},{"SYMBOLID":"WO-DILUC---L---","MAPPING":"3053","DESCRIPTION":"Limit of Undercast"},{"SYMBOLID":"WO-DILOR---L---","MAPPING":"3054","DESCRIPTION":"Limit of Radar Observation"},{"SYMBOLID":"WO-DILIEO--L---","MAPPING":"3055","DESCRIPTION":"Observed Ice Edge "},{"SYMBOLID":"WO-DILIEE--L---","MAPPING":"3056","DESCRIPTION":"Estimated Ice Edge"},{"SYMBOLID":"WO-DILIER--L---","MAPPING":"3057","DESCRIPTION":"Ice Edge From Radar "},{"SYMBOLID":"WO-DIOC----L---","MAPPING":"3058","DESCRIPTION":"Cracks"},{"SYMBOLID":"WO-DIOCS---L---","MAPPING":"3059","DESCRIPTION":"Cracks Specific-Location "},{"SYMBOLID":"WO-DIOL----L---","MAPPING":"3060","DESCRIPTION":"Ice Openings-Lead"},{"SYMBOLID":"WO-DIOLF---L---","MAPPING":"3061","DESCRIPTION":"Frozen Lead "},{"SYMBOLID":"WO-DHDDL---L---","MAPPING":"3062","DESCRIPTION":"Depth Curve"},{"SYMBOLID":"WO-DHDDC---L---","MAPPING":"3063","DESCRIPTION":"Depth Contour"},{"SYMBOLID":"WO-DHDDA----A--","MAPPING":"3064","DESCRIPTION":"Depth Area "},{"SYMBOLID":"WO-DHCC----L---","MAPPING":"3065","DESCRIPTION":"Coastline "},{"SYMBOLID":"WO-DHCI-----A--","MAPPING":"3066","DESCRIPTION":"Island "},{"SYMBOLID":"WO-DHCB-----A--","MAPPING":"3067","DESCRIPTION":"Beach"},{"SYMBOLID":"WO-DHCW-----A--","MAPPING":"3068","DESCRIPTION":"Water "},{"SYMBOLID":"WO-DHCF----L---","MAPPING":"3069","DESCRIPTION":"Foreshore Line"},{"SYMBOLID":"WO-DHCF-----A--","MAPPING":"3070","DESCRIPTION":"Foreshore Area "},{"SYMBOLID":"WO-DHPBA---L---","MAPPING":"3071","DESCRIPTION":"Anchorage Line "},{"SYMBOLID":"WO-DHPBA----A--","MAPPING":"3072","DESCRIPTION":"Anchorage Area"},{"SYMBOLID":"WO-DHPBP---L---","MAPPING":"3073","DESCRIPTION":"Pier "},{"SYMBOLID":"WOS-HPFF----A--","MAPPING":"3074","DESCRIPTION":"Wiers"},{"SYMBOLID":"WO-DHPMD----A--","MAPPING":"3075","DESCRIPTION":"Drydock"},{"SYMBOLID":"WO-DHPMO---L---","MAPPING":"3076","DESCRIPTION":"Offshore Loading Facility Line"},{"SYMBOLID":"WO-DHPMO----A--","MAPPING":"3077","DESCRIPTION":"Offshore Loading Facility Area "},{"SYMBOLID":"WO-DHPMRA--L---","MAPPING":"3078","DESCRIPTION":"Ramp Above Water"},{"SYMBOLID":"WO-DHPMRB--L---","MAPPING":"3079","DESCRIPTION":"Ramp Below Water "},{"SYMBOLID":"WO-DHPSPA--L---","MAPPING":"3080","DESCRIPTION":"Jetty Above Water "},{"SYMBOLID":"WO-DHPSPB--L---","MAPPING":"3081","DESCRIPTION":"Jetty Below Water"},{"SYMBOLID":"WO-DHPSPS--L---","MAPPING":"3082","DESCRIPTION":"Seawall "},{"SYMBOLID":"WO-DHABP----A--","MAPPING":"3083","DESCRIPTION":"Perches "},{"SYMBOLID":"WO-DHALLA--L---","MAPPING":"3084","DESCRIPTION":"Leading Line"},{"SYMBOLID":"WO-DHHD-----A--","MAPPING":"3085","DESCRIPTION":"Underwater Hazard"},{"SYMBOLID":"WO-DHHDF----A--","MAPPING":"3200","DESCRIPTION":"Foul Ground"},{"SYMBOLID":"WO-DHHDK----A--","MAPPING":"3201","DESCRIPTION":"Kelp"},{"SYMBOLID":"WO-DHHDB---L---","MAPPING":"3086","DESCRIPTION":"Breaker "},{"SYMBOLID":"WOS-HHDR---L---","MAPPING":"3087","DESCRIPTION":"Reef"},{"SYMBOLID":"WO-DHHDD----A--","MAPPING":"3089","DESCRIPTION":"Discolored Water "},{"SYMBOLID":"WO-DTCCCFE-L---","MAPPING":"3090","DESCRIPTION":"Ebb Tide "},{"SYMBOLID":"WO-DTCCCFF-L---","MAPPING":"3091","DESCRIPTION":"Flood Tide"},{"SYMBOLID":"WO-DOBVA----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 1-2"},{"SYMBOLID":"WO-DOBVB----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 2-3 "},{"SYMBOLID":"WO-DOBVC----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 3-4"},{"SYMBOLID":"WO-DOBVD----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 4-5 "},{"SYMBOLID":"WO-DOBVE----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 5-6"},{"SYMBOLID":"WO-DOBVF----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 6-7 "},{"SYMBOLID":"WO-DOBVG----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 7-8"},{"SYMBOLID":"WO-DOBVH----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 8-9"},{"SYMBOLID":"WO-DOBVI----A--","MAPPING":"3092","DESCRIPTION":"VDR Level 9-10"},{"SYMBOLID":"WO-DBSF-----A--","MAPPING":"3093","DESCRIPTION":"Beach Slope Flat "},{"SYMBOLID":"WO-DBSG-----A--","MAPPING":"3094","DESCRIPTION":"Beach Slope Gentle"},{"SYMBOLID":"WO-DBSM-----A--","MAPPING":"3095","DESCRIPTION":"Beach Slope Moderate"},{"SYMBOLID":"WO-DBST-----A--","MAPPING":"3096","DESCRIPTION":"Beach Slope Steep"},{"SYMBOLID":"WO-DGMSR----A--","MAPPING":"3097","DESCRIPTION":"Solid Rock "},{"SYMBOLID":"WO-DGMSC----A--","MAPPING":"3098","DESCRIPTION":"Clay"},{"SYMBOLID":"WO-DGMSSVS--A--","MAPPING":"3098","DESCRIPTION":"Very Course Sand"},{"SYMBOLID":"WO-DGMSSC---A--","MAPPING":"3098","DESCRIPTION":"Coarse Sand"},{"SYMBOLID":"WO-DGMSSM---A--","MAPPING":"3098","DESCRIPTION":"Medium Sand"},{"SYMBOLID":"WO-DGMSSF---A--","MAPPING":"3098","DESCRIPTION":"Fine Sand "},{"SYMBOLID":"WO-DGMSSVF--A--","MAPPING":"3098","DESCRIPTION":"Very Fine Sand"},{"SYMBOLID":"WO-DGMSIVF--A--","MAPPING":"3098","DESCRIPTION":"Very Fine Silt "},{"SYMBOLID":"WO-DGMSIF---A--","MAPPING":"3098","DESCRIPTION":"Fine Silt"},{"SYMBOLID":"WO-DGMSIM---A--","MAPPING":"3098","DESCRIPTION":"Medium Silt "},{"SYMBOLID":"WO-DGMSIC---A--","MAPPING":"3098","DESCRIPTION":"Coarse Silt"},{"SYMBOLID":"WO-DGMSB----A--","MAPPING":"3098","DESCRIPTION":"Boulders"},{"SYMBOLID":"WO-DGMS-CO--A--","MAPPING":"3098","DESCRIPTION":"Oyster Shells"},{"SYMBOLID":"WO-DGMS-PH--A--","MAPPING":"3098","DESCRIPTION":"Pebbles Shells "},{"SYMBOLID":"WO-DGMS-SH--A--","MAPPING":"3098","DESCRIPTION":"Sand and Shells"},{"SYMBOLID":"WO-DGML-----A--","MAPPING":"3098","DESCRIPTION":"Bottom Sediments Land"},{"SYMBOLID":"WO-DGMN-----A--","MAPPING":"3098","DESCRIPTION":"Bottom Sediments Land"},{"SYMBOLID":"WO-DGMRS----A--","MAPPING":"3098","DESCRIPTION":"Bottom Roughness Smooth"},{"SYMBOLID":"WO-DGMRM----A--","MAPPING":"3098","DESCRIPTION":"Bottom Roughness Moderate"},{"SYMBOLID":"WO-DGMRR----A--","MAPPING":"3098","DESCRIPTION":"Bottom Roughness Rough"},{"SYMBOLID":"WO-DGMCL----A--","MAPPING":"3098","DESCRIPTION":"Clutter Low"},{"SYMBOLID":"WO-DGMCM----A--","MAPPING":"3098","DESCRIPTION":"Clutter Medium"},{"SYMBOLID":"WO-DGMCH----A--","MAPPING":"3098","DESCRIPTION":"Clutter High"},{"SYMBOLID":"WO-DGMIBA---A--","MAPPING":"3098","DESCRIPTION":"Impact Burial 0"},{"SYMBOLID":"WO-DGMIBB---A--","MAPPING":"3098","DESCRIPTION":"Impact Burial 10"},{"SYMBOLID":"WO-DGMIBC---A--","MAPPING":"3098","DESCRIPTION":"Impact Burial 20"},{"SYMBOLID":"WO-DGMIBD---A--","MAPPING":"3098","DESCRIPTION":"Impact Burial 75"},{"SYMBOLID":"WO-DGMIBE---A--","MAPPING":"3098","DESCRIPTION":"Impact Burial 100"},{"SYMBOLID":"WO-DGMBCA---A--","MAPPING":"3098","DESCRIPTION":"Bottom Category A"},{"SYMBOLID":"WO-DGMBCB---A--","MAPPING":"3098","DESCRIPTION":"Bottom Category B"},{"SYMBOLID":"WO-DGMBCC---A--","MAPPING":"3098","DESCRIPTION":"Bottom Category C"},{"SYMBOLID":"WO-DGMBTA---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type A1"},{"SYMBOLID":"WO-DGMBTB---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type A2"},{"SYMBOLID":"WO-DGMBTC---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type A3"},{"SYMBOLID":"WO-DGMBTD---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type B1"},{"SYMBOLID":"WO-DGMBTE---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type B2"},{"SYMBOLID":"WO-DGMBTF---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type B3"},{"SYMBOLID":"WO-DGMBTG---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type C1"},{"SYMBOLID":"WO-DGMBTH---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type C2"},{"SYMBOLID":"WO-DGMBTI---A--","MAPPING":"3098","DESCRIPTION":"Bottom Type C3"},{"SYMBOLID":"WO-DL-ML---L---","MAPPING":"3099","DESCRIPTION":"Maritime Limit"},{"SYMBOLID":"WO-DL-MA----A--","MAPPING":"3100","DESCRIPTION":"Maritime Area"},{"SYMBOLID":"WO-DL-RA---L---","MAPPING":"3101","DESCRIPTION":"Restricted Area"},{"SYMBOLID":"WO-DL-SA----A--","MAPPING":"3102","DESCRIPTION":"Swept Area"},{"SYMBOLID":"WO-DL-TA----A--","MAPPING":"3103","DESCRIPTION":"Training Area"},{"SYMBOLID":"WO-DL-O-----A--","MAPPING":"3104","DESCRIPTION":"Operator Defined"},{"SYMBOLID":"WO-DMCA----L---","MAPPING":"3105","DESCRIPTION":"Cable"},{"SYMBOLID":"WO-DMCC-----A--","MAPPING":"3106","DESCRIPTION":"Submerged Crib"},{"SYMBOLID":"WO-DMCD----L---","MAPPING":"3107","DESCRIPTION":"Canal"},{"SYMBOLID":"WO-DMOA-----A--","MAPPING":"3108","DESCRIPTION":"Oil Rig Field "},{"SYMBOLID":"WO-DMPA----L---","MAPPING":"3109","DESCRIPTION":"Pipe"},{"SYMBOLID":"CYLINDER-------","MAPPING":"900","DESCRIPTION":"Cylinder"},{"SYMBOLID":"ORBIT----------","MAPPING":"900","DESCRIPTION":"Orbit"},{"SYMBOLID":"ROUTE----------","MAPPING":"900","DESCRIPTION":"Route"},{"SYMBOLID":"POLYGON--------","MAPPING":"900","DESCRIPTION":"Polygon"},{"SYMBOLID":"RADARC---------","MAPPING":"900","DESCRIPTION":"Radarc"},{"SYMBOLID":"POLYARC--------","MAPPING":"900","DESCRIPTION":"Polyarc"},{"SYMBOLID":"CAKE-----------","MAPPING":"900","DESCRIPTION":"Cake"},{"SYMBOLID":"TRACK----------","MAPPING":"900","DESCRIPTION":"Track"},{"SYMBOLID":"CURTAIN--------","MAPPING":"900","DESCRIPTION":"Curtain"}]}};return{init:function()
- {var i,data=null,symbol=null,count;if(symbolMap===null)
- {symbols=spMappingXml.TACTICALGRAPHICS.SYMBOL;spMappingXml=null;symbolMap={};this.parser=null;count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.mapping=symbol["MAPPING"]||"";data.description=symbol["DESCRIPTION"]||"";}
- if((symbolMap[data.symbolID])===undefined)
- {symbolMap[data.symbolID]=data;}}}},getCharCodeFromSymbol:function(symbolID,symStd)
- {try
- {var basicID=symbolID;if(armyc2.c2sd.renderer.utilities.SymbolUtilities.is3dAirspace(symbolID)===false)
- {basicID=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbolID);}
- if(basicID in symbolMap)
- {return symbolMap[basicID].mapping;}
- else
- {return null;}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("TacticalGraphicLookup","getCharCodeFromSymbol",err);}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SymbolDefTable=(function(){var symbolMapB=null,symbolMapC=null,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings,SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,parser;return{DRAW_CATEGORY_DONOTDRAW:0,DRAW_CATEGORY_LINE:1,DRAW_CATEGORY_AUTOSHAPE:2,DRAW_CATEGORY_POLYGON:3,DRAW_CATEGORY_ARROW:4,DRAW_CATEGORY_ROUTE:5,DRAW_CATEGORY_TWOPOINTLINE:6,DRAW_CATEGORY_POINT:8,DRAW_CATEGORY_TWOPOINTARROW:9,DRAW_CATEGORY_SUPERAUTOSHAPE:15,DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:16,DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:17,DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:18,DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:19,DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:20,DRAW_CATEGORY_3D_AIRSPACE:40,DRAW_CATEGORY_UNKNOWN:99,xmlDoc:null,init:function()
- {var i,data=null,symbol=null,symbols,count;if(symbolMapB===null&&armyc2.c2sd.renderer.xml.SymbolConstantsB!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.SymbolConstantsB.SYMBOLCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.SymbolConstantsB=null;symbolMapB={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.minPoints=parseInt(symbol["MINPOINTS"]||"",10);data.maxPoints=parseInt(symbol["MAXPOINTS"]||"",10);data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.modifiers=symbol["MODIFIERS"]||"";data.description=symbol["DESCRIPTION"]||"";}
- if((symbolMapB[data.symbolID])===undefined)
- {symbolMapB[data.symbolID]=data;}}}
- if(symbolMapC===null&&armyc2.c2sd.renderer.xml.SymbolConstantsC!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.SymbolConstantsC.SYMBOLCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.SymbolConstantsC=null;symbolMapC={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.minPoints=parseInt(symbol["MINPOINTS"]||"",10);data.maxPoints=parseInt(symbol["MAXPOINTS"]||"",10);data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.modifiers=symbol["MODIFIERS"]||"";data.description=symbol["DESCRIPTION"]||"";}
- if((symbolMapC[data.symbolID])===undefined)
- {symbolMapC[data.symbolID]=data;}}}},hasSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return true;}
- else if(symStd===1&&symbolMapC!==null)
- {return true;}
- else
- return false;},getSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return symbolMapB;}
- else if(symStd===1&&symbolMapC!==null)
- {return symbolMapC;}
- else
- return null;},getSymbolDef:function(symbolID,symStd){if(!(symStd))
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return symbolMap[symbolID];}
- else
- {return null;}},hasSymbolDef:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return true;}
- else
- {return false;}},isMultiPoint:function(symbolID,symStd){if(symStd===undefined)
- {symStd=RendererSettings.getSymbologyStandard();}
- var codingScheme=symbolID.charAt(0);var returnVal=false;if(codingScheme==='G'||codingScheme==='W')
- {var sd=this.getSymbolDef(SymbolUtilities.getBasicSymbolID(symbolID),symStd);if(sd)
- {if(sd.maxPoints>1)
- {returnVal=true;}
- else
- {switch(sd.drawCategory)
- {case this.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE:case this.DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE:case this.DRAW_CATEGORY_ROUTE:returnVal=true;break;default:returnVal=false;}}
- return returnVal;}else{return false;}}
- else if(symbolID.substring(0,3)==="BS_"||symbolID.substring(0,4)==="BBS_")
- {return true;}
- else
- {return false;}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.UnitDefTable=(function(){var symbolMapB=null,symbolMapC=null,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;return{xmlDoc:null,init:function()
- {var i,data=null,symbol=null,symbols,count;if(symbolMapB===null&&armyc2.c2sd.renderer.xml.UnitConstantsB!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.UnitConstantsB.UNITCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.UnitConstantsB=null;symbolMapB={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.description=symbol["DESCRIPTION"]||"";data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.hierarchy=symbol["HIERARCHY"]||"";}
- if((symbolMapB[data.symbolID])===undefined)
- {symbolMapB[data.symbolID]=data;}}}
- if(symbolMapC===null&&armyc2.c2sd.renderer.xml.UnitConstantsC!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.UnitConstantsC.UNITCONSTANTS.SYMBOL;armyc2.c2sd.renderer.xml.UnitConstantsC=null;symbolMapC={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.description=symbol["DESCRIPTION"]||"";data.drawCategory=parseInt(symbol["DRAWCATEGORY"]||"",10);data.hierarchy=symbol["HIERARCHY"]||"";}
- if((symbolMapC[data.symbolID])===undefined)
- {symbolMapC[data.symbolID]=data;}}}},hasSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return true;}
- else if(symStd===1&&symbolMapC!==null)
- {return true;}
- else
- return false;},getSymbolMap:function(symStd)
- {if(symStd===0&&symbolMapB!==null)
- {return symbolMapB;}
- else if(symStd===1&&symbolMapC!==null)
- {return symbolMapC;}
- else
- return null;},getUnitDef:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return symbolMap[symbolID];}
- else
- {return null;}},hasUnitDef:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[symbolID]!==undefined)
- {return true;}
- else
- {return false;}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SinglePointLookup=(function(){function SinglePointLookupInfo(basicSymbolID,description,mappingP,mappingA,width,height){this._SymbolID=basicSymbolID;this._Description=description;this._mappingP=mappingP;this._mappingA=mappingA;this._width=width;this._height=height;this.getBasicSymbolID=function(){return this._SymbolID;};this.getDescription=function(){return this._Description;};this.getMappingA=function(){return this._mappingA;};this.getMappingP=function(){return this._mappingP;};this.getWidth=function(){return _width;};this.getHeight=function(){return _height;};}
- var symbolMapB=null,symbolMapC=null,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;return{xmlDoc:null,init:function()
- {var i,data=null,symbol=null,symbols=null,count;if(symbolMapB===null&&armyc2.c2sd.renderer.xml.SinglePointMappingsB!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.SinglePointMappingsB.SINGLEPOINTMAPPINGS.SYMBOL;armyc2.c2sd.renderer.xml.SinglePointMappingsB=null;symbolMapB={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.mappingP=symbol["MAPPINGP"]||"";data.mappingA=symbol["MAPPINGA"]||"";data.description=symbol["DESCRIPTION"]||"";data.width=parseInt(symbol["WIDTH"]||"");data.height=parseInt(symbol["HEIGHT"]||"");}
- if((symbolMapB[data.symbolID])===undefined)
- {symbolMapB[data.symbolID]=data;}}}
- if(symbolMapC===null&&armyc2.c2sd.renderer.xml.SinglePointMappingsC!==undefined)
- {symbols=symbols=armyc2.c2sd.renderer.xml.SinglePointMappingsC.SINGLEPOINTMAPPINGS.SYMBOL;armyc2.c2sd.renderer.xml.SinglePointMappingsC=null;symbolMapC={};count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.mappingP=symbol["MAPPINGP"]||"";data.mappingA=symbol["MAPPINGA"]||"";data.description=symbol["DESCRIPTION"]||"";data.width=parseInt(symbol["WIDTH"]||"");data.height=parseInt(symbol["HEIGHT"]||"");}
- if((symbolMapC[data.symbolID])===undefined)
- {symbolMapC[data.symbolID]=data;}}}},getSPLookupInfo:function(symbolID,symStd){var basicID=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbolID);if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[basicID]!==undefined)
- {return symbolMap[basicID];}
- else
- {return null;}},hasSPLookupInfo:function(symbolID,symStd){var basicID=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbolID);if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var symbolMap=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else
- symbolMap=symbolMapC;if(symbolMap[basicID]!==undefined)
- {return true;}
- else
- {return false;}},getCharCodeFromSymbol:function(symbolCode,symStd){try
- {var strSymbolLookup=null;if(symbolCode.indexOf("FILL")===-1)
- strSymbolLookup=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbolCode);else
- strSymbolLookup=symbolCode;var symbolMap=null;if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- symbolMap=symbolMapB;else if(symStd===RendererSettings.Symbology_2525C)
- symbolMap=symbolMapC;var spli=null;if(armyc2.c2sd.renderer.utilities.SymbolUtilities.isWeather(strSymbolLookup)||symbolCode.indexOf("FILL")!==-1)
- {spli=symbolMap[strSymbolLookup];if(spli!==null)
- return spli.mappingP;else
- return-1;}
- else
- {spli=symbolMap[strSymbolLookup];if(spli!==null)
- {if(armyc2.c2sd.renderer.utilities.SymbolUtilities.getStatus(symbolCode)===("A"))
- return spli.mappingA;else
- return spli.mappingP;}
- else
- {return-1;}}}
- catch(exc)
- {}
- return-1;}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.UnitFontLookup=(function(){var FillIndexUZ=800,FillIndexUP=849,FillIndexUA=825,FillIndexUG=800,FillIndexUGE=800,FillIndexUS=800,FillIndexUU=837,FillIndexUF=800,FillIndexFZ=812,FillIndexFP=843,FillIndexFA=819,FillIndexFG=803,FillIndexFGE=812,FillIndexFS=812,FillIndexFU=831,FillIndexFF=803,FillIndexNZ=809,FillIndexNP=846,FillIndexNA=822,FillIndexNG=809,FillIndexNGE=809,FillIndexNS=809,FillIndexNU=834,FillIndexNF=809,FillIndexHZ=806,FillIndexHP=840,FillIndexHA=816,FillIndexHG=806,FillIndexHGE=806,FillIndexHS=806,FillIndexHU=828,FillIndexHF=806;var SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;var symbolMapB=null,symbolMapC=null,symbolsLoaded=false;return{init:function()
- {var i,symbols=null,data=null,symbol=null,count;if(symbolMapB===null&&armyc2.c2sd.renderer.xml.UnitFontMappingsB!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.UnitFontMappingsB.UNITFONTMAPPINGS.SYMBOL;armyc2.c2sd.renderer.xml.UnitFontMappingsB=null;symbolMapB={};this.parser=null;count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.description=symbol["DESCRIPTION"]||"";data.mapping1U=symbol["MAPPING1U"]||null;data.mapping1F=symbol["MAPPING1F"]||null;data.mapping1N=symbol["MAPPING1N"]||null;data.mapping1H=symbol["MAPPING1H"]||null;data.mapping1color=symbol["MAPPING1COLOR"]||"";data.mapping2=symbol["MAPPING2"]||null;data.mapping2color=symbol["MAPPING2COLOR"]||"";}
- if((symbolMapB[data.symbolID])===undefined)
- {var ufli=new armyc2.c2sd.renderer.utilities.UnitFontLookupInfo(data.symbolID,data.description,data.mapping1U,data.mapping1F,data.mapping1N,data.mapping1H,data.mapping1color,data.mapping2,data.mapping2color);symbolMapB[data.symbolID]=ufli;}}}
- if(symbolMapC===null&&armyc2.c2sd.renderer.xml.UnitFontMappingsC!==undefined)
- {symbols=armyc2.c2sd.renderer.xml.UnitFontMappingsC.UNITFONTMAPPINGS.SYMBOL;armyc2.c2sd.renderer.xml.UnitFontMappingsC=null;symbolMapC={};this.parser=null;count=symbols.length;for(i=0;i<count;i+=1){symbol=symbols[i];if(symbol!==null){data={};data.symbolID=symbol["SYMBOLID"]||"";data.description=symbol["DESCRIPTION"]||"";data.mapping1U=symbol["MAPPING1U"]||null;data.mapping1F=symbol["MAPPING1F"]||null;data.mapping1N=symbol["MAPPING1N"]||null;data.mapping1H=symbol["MAPPING1H"]||null;data.mapping1color=symbol["MAPPING1COLOR"]||"";data.mapping2=symbol["MAPPING2"]||null;data.mapping2color=symbol["MAPPING2COLOR"]||"";}
- if((symbolMapC[data.symbolID])===undefined)
- {var ufli=new armyc2.c2sd.renderer.utilities.UnitFontLookupInfo(data.symbolID,data.description,data.mapping1U,data.mapping1F,data.mapping1N,data.mapping1H,data.mapping1color,data.mapping2,data.mapping2color);symbolMapC[data.symbolID]=ufli;}}}
- if(symbolMapB!==null||symbolMapC!==null)
- symbolsLoaded=true;},getUnitLookup:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var map=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- map=symbolMapB;else
- map=symbolMapC;if(map[symbolID]!==undefined)
- {return map[symbolID];}
- else
- {return null;}},hasUnitLookup:function(symbolID,symStd){if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();var map=null;if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- map=symbolMapB;else
- map=symbolMapC;if(map[symbolID]!==undefined)
- {return true;}
- else
- {return false;}},resolveAffiliation:function(symbolID){var code=symbolID.substring(0);var affiliation=symbolID.charAt(1);if(affiliation==="F"||affiliation==="H"||affiliation==="U"||affiliation==="N")
- return code;else if(affiliation==="S")
- code=code.charAt(0)+"H"+code.substring(2,15);else if(affiliation==="L")
- code=code.charAt(0)+"N"+code.substring(2,15);else if(affiliation==="A"||affiliation==="D"||affiliation==="M"||affiliation==="K"||affiliation==="J")
- code=code.charAt(0)+"F"+code.substring(2,15);else if(affiliation==="P"||affiliation==="G"||affiliation==="O"||affiliation==="W")
- code=code.charAt(0)+"U"+code.substring(2,15);else
- code=code.charAt(0)+"U"+code.substring(2,15);return code;},getFillCode:function(SymbolID,symStd){var returnVal=-1,scheme="",battleDimension="",status="",affiliation="",grdtrkSubset="";if(SymbolID!==null&&SymbolID.length>=10)
- {scheme=SymbolID.charAt(0);affiliation=SymbolID.charAt(1);battleDimension=SymbolID.charAt(2);status=SymbolID.charAt(3);grdtrkSubset=SymbolID.charAt(4);if(symStd===undefined)
- {symStd=RendererSettings.getSymbologyStandard();}
- if(scheme==='S')
- {if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {if(battleDimension==='F'||battleDimension==='G')
- {if(battleDimension==='F'||(battleDimension==='G'&&(grdtrkSubset==='U'||grdtrkSubset==='I'||grdtrkSubset==='0'||grdtrkSubset==='-')))
- {returnVal=803;}
- else if(battleDimension==='G'&&grdtrkSubset==='E')
- {returnVal=812;}
- else
- returnVal=803;}
- else if(battleDimension==='A')
- {returnVal=819;}
- else if(battleDimension==='S')
- {returnVal=this.getSeaSurfaceFill(SymbolID);}
- else if(battleDimension==='U')
- {returnVal=this.getSubSurfaceFill(SymbolID,symStd);}
- else if(battleDimension==='P')
- {returnVal=843;}
- else
- {returnVal=812;}}
- else if(affiliation==='H'||affiliation==='S')
- {if(battleDimension==='F'||battleDimension==='G')
- {returnVal=806;}
- else if(battleDimension==='A')
- {returnVal=816;}
- else if(battleDimension==='S')
- {returnVal=this.getSeaSurfaceFill(SymbolID);}
- else if(battleDimension==='U')
- {returnVal=this.getSubSurfaceFill(SymbolID,symStd);}
- else if(battleDimension==='P')
- {returnVal=840;}
- else
- {returnVal=806;}}
- else if(affiliation==='N'||affiliation==='L')
- {if(battleDimension==='F'||battleDimension==='G')
- {returnVal=809;}
- else if(battleDimension==='A')
- {returnVal=822;}
- else if(battleDimension==='S')
- {returnVal=this.getSeaSurfaceFill(SymbolID);}
- else if(battleDimension==='U')
- {returnVal=this.getSubSurfaceFill(SymbolID,symStd);}
- else if(battleDimension==='P')
- {returnVal=846;}
- else
- {returnVal=809;}}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {if(battleDimension==='Z'||battleDimension==='G'||battleDimension==='F')
- {returnVal=800;}
- else if(battleDimension==='A')
- {returnVal=825;}
- else if(battleDimension==='S')
- {returnVal=this.getSeaSurfaceFill(SymbolID);}
- else if(battleDimension==='U')
- {returnVal=this.getSubSurfaceFill(SymbolID,symStd);}
- else if(battleDimension==='P')
- {returnVal=849;}
- else
- returnVal=800;}
- else
- returnVal=FillIndexUG;}
- else if(scheme==='E')
- {if(battleDimension!=='N')
- {if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {if(SymbolUtilities.isEMSEquipment(SymbolID))
- returnVal=812;else
- returnVal=803;}
- else if(affiliation==='H'||affiliation==='S')
- {returnVal=806;}
- else if(affiliation==='N'||affiliation==='L')
- {returnVal=809;}
- else
- {returnVal=800;}}
- else
- {returnVal=-1;}}
- else if(scheme==='I')
- {if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {if(battleDimension==='Z')
- {returnVal=812;}
- else if(battleDimension==='F'||battleDimension==='G'||battleDimension==='S')
- {if(scheme==='I')
- returnVal=812;else
- returnVal=803;}
- else if(battleDimension==='A')
- {returnVal=819;}
- else if(battleDimension==='U')
- {returnVal=831;}
- else if(battleDimension==='P')
- {returnVal=843;}
- else
- {if(scheme==='I')
- returnVal=812;else
- returnVal=803;}}
- if(affiliation==='H'||affiliation==='S')
- {if(battleDimension==='Z')
- {returnVal=806;}
- else if(battleDimension==='F'||battleDimension==='G'||battleDimension==='S')
- {returnVal=806;}
- else if(battleDimension==='A')
- {returnVal=816;}
- else if(battleDimension==='U')
- {returnVal=828;}
- else if(battleDimension==='P')
- {returnVal=840;}
- else
- {returnVal=806;}}
- if(affiliation==='N'||affiliation==='L')
- {if(battleDimension==='Z')
- {returnVal=809;}
- else if(battleDimension==='F'||battleDimension==='G'||battleDimension==='S')
- {returnVal=809;}
- else if(battleDimension==='A')
- {returnVal=822;}
- else if(battleDimension==='U')
- {returnVal=834;}
- else if(battleDimension==='P')
- {returnVal=846;}
- else
- {returnVal=809;}}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {if(battleDimension==='Z'||battleDimension==='G'||battleDimension==='S'||battleDimension==='F')
- {returnVal=800;}
- else if(battleDimension==='A')
- {returnVal=825;}
- else if(battleDimension==='U')
- {returnVal=837;}
- else if(battleDimension==='P')
- {returnVal=849;}
- else
- {returnVal=800;}}}
- else
- {if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {if(SymbolID.substring(0,3)==="OFI"&&SymbolID.substring(4,10)===("T-----"))
- {returnVal=FillIndexFGE;}
- else
- {returnVal=803;}}
- else if(affiliation==='H'||affiliation==='S')
- {returnVal=806;}
- else if(affiliation==='N'||affiliation==='L')
- {returnVal=809;}
- else
- {returnVal=800;}}}
- else
- {returnVal=800;}
- return returnVal;},getFrameCode:function(SymbolID,fillCode,symStd){var returnVal=0,status=SymbolID.charAt(3);if(status==='A')
- returnVal=fillCode+2;else
- returnVal=fillCode+1;if(symStd===undefined)
- symStd=RendererSettings.getSymbologyStandard();if(symStd>RendererSettings.Symbology_2525Bch2_USAS_13_14&&status==='A')
- {var affiliation=SymbolID.charAt(1);switch(affiliation)
- {case'P':case'A':case'S':case'G':case'M':returnVal--;break;}}
- if(returnVal===847)
- returnVal=852;if(SymbolUtilities.isSeaSurface(SymbolID))
- {returnVal=this.getSeaSurfaceFrame(SymbolID,fillCode);}
- if(SymbolUtilities.isSubSurface(SymbolID))
- {returnVal=this.getSubSurfaceFrame(SymbolID,fillCode);}
- return returnVal;},getSeaSurfaceFill:function(SymbolID){var affiliation="U",affiliation=SymbolID.charAt(1);if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*S*O-----*****"))
- {return 2016;}
- else
- {if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {return FillIndexFS;}
- else if(affiliation==='H'||affiliation==='S')
- {return FillIndexHS;}
- else if(affiliation==='N'||affiliation==='L')
- {return FillIndexNS;}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {return FillIndexUS;}
- else
- {return FillIndexUG;}}},getSubSurfaceFill:function(SymbolID,symStd){var affiliation=0,status=0,returnVal=831;try
- {if(symStd===undefined)
- {symStd=RendererSettings.getSymbologyStandard();}
- affiliation=SymbolID.charAt(1);status=SymbolID.charAt(3);if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {returnVal=831;}
- else if(affiliation==='H'||affiliation==='S')
- {returnVal=828;}
- else if(affiliation==='N'||affiliation==='L')
- {returnVal=834;}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {returnVal=837;}
- if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*X-----*****"))
- {if(status==='A')
- returnVal=returnVal+2;else
- returnVal++;}
- if(symStd===RendererSettings.Symbology_2525C)
- {if(SymbolID.indexOf("WM")===4||SymbolID.indexOf("WDM")===4||SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*E-----*****")||SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*V-----*****"))
- {returnVal++;if(status==='A')
- returnVal++;}
- else if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*ND----*****"))
- {returnVal=2121;}}
- else
- {if(SymbolID.indexOf("WM")===4)
- {if(SymbolID.indexOf("----",6)===6||SymbolID.indexOf("D---",6)===6)
- returnVal=2059;else if(SymbolID.indexOf("G---",6)===6)
- returnVal=2062;else if(SymbolID.indexOf("GD--",6)===6)
- returnVal=2064;else if(SymbolID.indexOf("M---",6)===6)
- returnVal=2073;else if(SymbolID.indexOf("MD--",6)===6)
- returnVal=2075;else if(SymbolID.indexOf("F---",6)===6)
- returnVal=2084;else if(SymbolID.indexOf("FD--",6)===6)
- returnVal=2086;else if(SymbolID.indexOf("O---",6)===6||SymbolID.indexOf("OD--",6)===6)
- returnVal=2094;}
- else if(SymbolID.indexOf("WDM")===4)
- {returnVal=2115;}
- else if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*ND----*****"))
- {returnVal=2121;}}}
- catch(exc)
- {return FillIndexUU;}
- return returnVal;},getSeaSurfaceFrame:function(SymbolID,fillCode){var returnVal=fillCode+1;if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*S*O-----*****"))
- returnVal=-1;else
- {if(SymbolID.charAt(3)==='A'||SymbolID.charAt(3)==='a')
- return fillCode+2;else
- return fillCode+1;}
- return returnVal;},getSubSurfaceFrame:function(SymbolID,fillCode){var returnVal=fillCode+1;try
- {if(RendererSettings.getSymbologyStandard()===RendererSettings.Symbology_2525C)
- {if(SymbolID.indexOf("WM")===4||SymbolID.indexOf("WDM")===4||SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*E-----*****")||SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*V-----*****")||SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*X-----*****"))
- {returnVal=-1;}
- else if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*ND----*****"))
- {returnVal=-1;}
- else
- {if(SymbolID.charAt(3)==='A'||SymbolID.charAt(3)==='a')
- return fillCode+2;else
- return fillCode+1;}}
- else
- {if(SymbolID.indexOf("WM")===4)
- {returnVal=-1;}
- else if(SymbolID.indexOf("WDM")===4)
- {returnVal=-1;}
- else if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*ND----*****"))
- {returnVal=-1;}
- else if(SymbolUtilities.getBasicSymbolID(SymbolID)===("S*U*X-----*****"))
- {returnVal=-1;}
- else
- {if(SymbolID.charAt(3)==='A'||SymbolID.charAt(3)==='a')
- return fillCode+2;else
- return fillCode+1;}}}
- catch(exc)
- {return fillCode;}
- return returnVal;},getUnitRatioHeight:function(characterIndex){if(characterIndex===FillIndexHP||characterIndex===FillIndexHA||characterIndex===FillIndexHU||characterIndex===(FillIndexHU+1)||characterIndex===(FillIndexHU+2)||characterIndex===FillIndexUP||characterIndex===FillIndexUA||characterIndex===FillIndexUU||characterIndex===(FillIndexUU+1)||characterIndex===(FillIndexUU+2))
- {return 1.3;}
- else if(characterIndex===FillIndexHZ||characterIndex===FillIndexHG||characterIndex===FillIndexHGE||characterIndex===FillIndexHS||characterIndex===FillIndexHF||characterIndex===FillIndexUZ||characterIndex===FillIndexUG||characterIndex===FillIndexUGE||characterIndex===FillIndexUS||characterIndex===FillIndexUF)
- {return 1.44;}
- else if(characterIndex===FillIndexFGE||characterIndex===FillIndexFP||characterIndex===FillIndexFA||characterIndex===FillIndexFU||characterIndex===(FillIndexFU+1)||characterIndex===(FillIndexFU+2)||characterIndex===FillIndexFZ||characterIndex===FillIndexFS||characterIndex===FillIndexNP||characterIndex===FillIndexNA||characterIndex===FillIndexNU||characterIndex===(FillIndexNU+1)||characterIndex===(FillIndexNU+2))
- {return 1.2;}
- else if(characterIndex===FillIndexNZ||characterIndex===FillIndexNG||characterIndex===FillIndexNGE||characterIndex===FillIndexNS||characterIndex===FillIndexNF)
- {return 1.1;}
- else if(characterIndex===FillIndexFG||characterIndex===FillIndexFGE)
- {return 1.0;}
- else
- {return 1.2;}},getUnitRatioWidth:function(characterIndex){if(characterIndex===FillIndexUP||characterIndex===FillIndexUA||characterIndex===FillIndexUU||characterIndex===FillIndexUU+1||characterIndex===FillIndexUU+2||characterIndex===FillIndexFG||characterIndex===FillIndexFF)
- {return 1.5;}
- else if(characterIndex===FillIndexHZ||characterIndex===FillIndexHG||characterIndex===FillIndexHGE||characterIndex===FillIndexHS||characterIndex===FillIndexHF||characterIndex===FillIndexUZ||characterIndex===FillIndexUG||characterIndex===FillIndexUGE||characterIndex===FillIndexUS||characterIndex===FillIndexUF)
- {return 1.44;}
- else if(characterIndex===FillIndexFZ||characterIndex===FillIndexFGE||characterIndex===FillIndexFS)
- {return 1.2;}
- else
- {return 1.1;}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.utilities=armyc2.c2sd.renderer.utilities||{};armyc2.c2sd.renderer.utilities.SymbolDimensions={};armyc2.c2sd.renderer.utilities.SymbolDimensions.getUnitBounds=function(charIndex,fontSize){var Rectangle=armyc2.c2sd.renderer.so.Rectangle,index=charIndex;var rect=null;switch(index)
- {case 800:case 801:case 802:rect=new Rectangle(0,0,60.8,60.8);break;case 803:case 804:case 805:rect=new Rectangle(0,0,65,47);break;case 806:case 807:case 808:rect=new Rectangle(0,0,62.5,62.5);break;case 809:case 810:case 811:rect=new Rectangle(0,0,50.05,50.05);break;case 812:case 813:case 814:rect=new Rectangle(0,0,53.75,53.75);break;case 816:case 817:case 818:case 840:case 841:case 842:rect=new Rectangle(0,8,50.3,53);break;case 819:case 820:case 821:case 843:case 844:case 845:rect=new Rectangle(0,7,46.6,48);break;case 822:case 823:case 824:case 846:case 847:case 848:rect=new Rectangle(0,6,47,48);break;case 825:case 826:case 827:case 849:case 850:case 851:rect=new Rectangle(0,5,64.7,56);break;case 828:case 829:case 830:rect=new Rectangle(0,-8,50.3,53);break;case 831:case 832:case 833:rect=new Rectangle(0,-5,46.6,48);break;case 834:case 835:case 836:rect=new Rectangle(0,-5,46.5,48);break;case 837:case 838:case 839:rect=new Rectangle(0,-5,64.7,56);break;default:rect=new Rectangle(0,0,65,65);break;}
- var ratio=1;if(fontSize!==50)
- {ratio=fontSize/50;rect=new Rectangle(0,Math.ceil(rect.y*ratio),Math.ceil(rect.width*ratio),Math.ceil(rect.height*ratio));}
- return rect;};armyc2.c2sd.renderer.utilities.SymbolDimensions.getSymbolBounds=function(symbolID,symStd,fontSize){var spli=armyc2.c2sd.renderer.utilities.SinglePointLookup.getSPLookupInfo(symbolID,symStd);var Rectangle=armyc2.c2sd.renderer.so.Rectangle;var rect=new Rectangle(0,0,spli.width,spli.height);if(fontSize!==60)
- {var ratio=fontSize/60;rect=new Rectangle(0,0,Math.round(rect.width*ratio),Math.round(rect.height*ratio));}
- return rect;};armyc2.c2sd.renderer.utilities.SymbolDimensions.getSymbolCenter=function(symbolID,bounds){var SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities;var basicID=SymbolUtilities.getBasicSymbolID(symbolID),center=new armyc2.c2sd.renderer.so.Point(bounds.width/2,bounds.height/2);if(basicID==="G*G*GPUUB-****X"||basicID==="G*G*GPUUL-****X"||basicID==="G*G*GPUUS-****X"||basicID==="G*G*GPRI--****X"||basicID==="G*G*GPWE--****X"||basicID==="G*G*GPWG--****X"||basicID==="G*G*GPWM--****X"||basicID==="G*G*GPP---****X"||basicID==="G*G*GPPC--****X"||basicID==="G*G*GPPL--****X"||basicID==="G*G*GPPP--****X"||basicID==="G*G*GPPR--****X"||basicID==="G*G*GPPA--****X"||basicID==="G*G*APD---****X"||basicID==="G*G*OPP---****X"||basicID.substring(0,7)==="G*M*OAO"||basicID==="G*M*BCP---****X"||basicID==="G*F*PCS---****X"||basicID==="G*F*PCB---****X"||basicID==="G*F*PCR---****X"||basicID==="G*F*PCH---****X"||basicID==="G*F*PCL---****X"||basicID.substring(0,5)==="G*S*P"||basicID==="G*O*ED----****X"||basicID==="G*O*EP----****X"||basicID==="G*O*EV----****X"||basicID==="G*O*SB----****X"||basicID==="G*O*SBM---****X"||basicID==="G*O*SBN---****X"||basicID==="G*O*SS----****X"||basicID==="G*G*GPPN--****X"||basicID==="G*S*PX----****X"||basicID==="G*O*ES----****X"||SymbolUtilities.isNBC(basicID)||SymbolUtilities.isDeconPoint(basicID)||SymbolUtilities.isCheckPoint(basicID))
- {center.x=bounds.width/2;center.y=bounds.height;}
- else if(SymbolUtilities.isSonobuoy(basicID))
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.66);}
- else if((basicID.substring(0,7)==="G*G*GPO"&&basicID.substring(7,8)!=="-"))
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.33);}
- else if(basicID==="G*M*OMD---****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.28);}
- else if(basicID.substring(0,7)==="G*G*DPO")
- {if(basicID.substring(7,8)==="C")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.55);}
- else
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.65);}}
- else if(basicID==="G*G*GPWD--****X"||basicID==="G*G*PN----****X"||basicID==="G*M*OB----****X"||basicID==="G*M*OME---****X"||basicID==="G*M*OMW---****X"||basicID==="G*M*OMP---****X"||basicID==="G*M*OHTL--****X"||basicID==="G*M*OHTH--****X"||basicID==="G*O*HM----****X"||basicID==="G*O*HI----****X"||basicID==="G*O*SM----****X")
- {if(basicID==="G*G*GPWD--****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.85);}
- if(basicID==="G*G*PN----****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.69);}
- if(basicID==="G*M*OB----****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.8);}
- if(basicID==="G*M*OME---****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.77);}
- if(basicID==="G*M*OMW---****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.34);}
- if(basicID==="G*M*OMP---****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.59);}
- if(basicID==="G*M*OHTL--****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.95);}
- if(basicID==="G*M*OHTH--****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.95);}
- if(basicID==="G*O*HM----****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.7);}
- if(basicID==="G*O*HI----****X")
- {center.x=bounds.width/2;center.y=Math.round(bounds.height*0.58);}
- if(basicID==="G*O*SM----****X")
- {center.x=0;center.y=Math.round(bounds.height*0.5);}}
- else
- {center.x=bounds.width/2;center.y=bounds.height/2;}
- return center;};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2={intersectPoint:function(pt0,pt1,currentEdge)
- {var ptIntersect=null;try{var edgePt1=currentEdge.getP1();var edgePt2=currentEdge.getP2();var edge_x=0;var edge_y=0;var m=0;var deltaX=0;var deltaY=0;if(Math.abs(edgePt1.getX()-edgePt2.getX())<Math.abs(edgePt1.getY()-edgePt2.getY())){ptIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D();edge_x=edgePt1.getX();if(pt1.getX()===pt0.getX())
- pt1.setLocation(pt1.getX()+1,pt1.getY());m=(pt1.getY()-pt0.getY())/(pt1.getX()-pt0.getX());deltaX=edge_x-pt0.getX();ptIntersect.setLocation(edge_x,pt0.getY()+m*deltaX);}else{ptIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D();edge_y=edgePt1.getY();if(pt1.getX()===pt0.getX())
- pt1.setLocation(pt1.getX()+1,pt1.getY());m=(pt1.getY()-pt0.getY())/(pt1.getX()-pt0.getX());deltaY=edge_y-pt0.getY();ptIntersect.setLocation(pt0.getX()+deltaY/m,edge_y);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"intersectPoint",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside intersectPoint",exc));}else{throw exc;}}
- return ptIntersect;},clipTop:function(pts,clipBounds){var ptsResult=new java.util.ArrayList();try{var ulx=0;var uly=0;var lrx=0;ulx=clipBounds.getMinX();uly=clipBounds.getMinY();var ul=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx,uly);var ur=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx,uly);var j=0;var current=null;var previous=null;var intersectPt=null;var edge;for(j=0;j<pts.size();j++){current=pts.get(j);if(j===0){previous=pts.get(pts.size()-1);}else{previous=pts.get(j-1);}
- if(previous.getY()>=ul.getY()&¤t.getY()>=ul.getY()){ptsResult.add(current);}
- if(previous.getY()>=ul.getY()&¤t.getY()<ul.getY()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ul,ur);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}}
- if(previous.getY()<ul.getY()&¤t.getY()<ul.getY()){continue;}
- if(previous.getY()<ul.getY()&¤t.getY()>=ul.getY()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ul,ur);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}
- ptsResult.add(current);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"clipTop",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside clipTop",exc));}else{throw exc;}}
- return ptsResult;},clipBottom:function(pts,clipBounds){var ptsResult=new java.util.ArrayList();try{var ulx=0;var uly=0;var lrx=0;var lry=0;ulx=clipBounds.getMinX();lrx=clipBounds.getMaxX();lry=clipBounds.getMaxY();var ll=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx,lry);var lr=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx,lry);var j=0;var current=null;var previous=null;var intersectPt=null;var edge;for(j=0;j<pts.size();j++){current=pts.get(j);if(j===0){previous=pts.get(pts.size()-1);}else{previous=pts.get(j-1);}
- if(previous.getY()<=lr.getY()&¤t.getY()<=lr.getY()){ptsResult.add(current);}
- if(previous.getY()<=lr.getY()&¤t.getY()>lr.getY()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ll,lr);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}}
- if(previous.getY()>lr.getY()&¤t.getY()>lr.getY()){continue;}
- if(previous.getY()>lr.getY()&¤t.getY()<=lr.getY()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ll,lr);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}
- ptsResult.add(current);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"clipBottom",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside clipBottom",exc));}else{throw exc;}}
- return ptsResult;},clipRight:function(pts,clipBounds){var ptsResult=new java.util.ArrayList();try{var uly=0;var lrx=0;var lry=0;uly=clipBounds.getMinY();lrx=clipBounds.getMaxX();lry=clipBounds.getMaxY();var ur=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx,uly);var lr=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx,lry);var j=0;var current=null;var previous=null;var intersectPt=null;var edge;for(j=0;j<pts.size();j++){current=pts.get(j);if(j===0){previous=pts.get(pts.size()-1);}else{previous=pts.get(j-1);}
- if(previous.getX()<=lr.getX()&¤t.getX()<=lr.getX()){ptsResult.add(current);}
- if(previous.getX()<=lr.getX()&¤t.getX()>lr.getX()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ur,lr);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}}
- if(previous.getX()>lr.getX()&¤t.getX()>lr.getX()){continue;}
- if(previous.getX()>lr.getX()&¤t.getX()<=lr.getX()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ur,lr);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}
- ptsResult.add(current);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"clipRight",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside clipRight",exc));}else{throw exc;}}
- return ptsResult;},clipLeft:function(pts,clipBounds){var ptsResult=new java.util.ArrayList();try{var ulx=0;var uly=0;var lry=0;ulx=clipBounds.getMinX();uly=clipBounds.getMinY();lry=clipBounds.getMaxY();var ul=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx,uly);var ll=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx,lry);var j=0;var current=null;var previous=null;var intersectPt=null;var edge;for(j=0;j<pts.size();j++){current=pts.get(j);if(j===0){previous=pts.get(pts.size()-1);}else{previous=pts.get(j-1);}
- if(previous.getX()>=ll.getX()&¤t.getX()>=ll.getX()){ptsResult.add(current);}
- if(previous.getX()>=ll.getX()&¤t.getX()<ll.getX()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ul,ll);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}}
- if(previous.getX()<ll.getX()&¤t.getX()<ll.getX()){continue;}
- if(previous.getX()<ll.getX()&¤t.getX()>=ll.getX()){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ul,ll);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.intersectPoint(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}
- ptsResult.add(current);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"clipLeft",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside clipLeft",exc));}else{throw exc;}}
- return ptsResult;},AddBoundaryPointsForLines:function(polygon,clipBounds){var result=0;try{var ulx=0;var uly=0;var lrx=0;var lry=0;ulx=clipBounds.getMinX();uly=clipBounds.getMinY();lrx=clipBounds.getMaxX();lry=clipBounds.getMaxY();var ul=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx+10,uly+10);var ur=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx-10,uly+10);var ll=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ulx+10,lry-10);var lr=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lrx-10,lry-10);var pt0=polygon.get(0);var ptn=polygon.get(polygon.size()-1);var addToFront=new Boolean(false);var addToEnd=new Boolean(false);if(pt0.getY()<uly){polygon.add(0,ul);addToFront=new Boolean(true);}else if(pt0.getX()<ulx){polygon.add(0,ul);addToFront=new Boolean(true);}else if(pt0.getX()>lrx){polygon.add(0,lr);addToFront=new Boolean(true);}else if(pt0.getY()>lry){polygon.add(0,lr);addToFront=new Boolean(true);}
- if(ptn.getY()<uly){polygon.add(ul);addToEnd=new Boolean(true);}else if(ptn.getX()<ulx){polygon.add(ul);addToEnd=new Boolean(true);}else if(ptn.getX()>lrx){polygon.add(lr);addToEnd=new Boolean(true);}else if(ptn.getY()>lry){polygon.add(lr);addToEnd=new Boolean(true);}
- if(addToFront.booleanValue()===false&&addToEnd.booleanValue()===false){result=0;}
- if(addToFront.booleanValue()===true&&addToEnd.booleanValue()===false){result=1;}
- if(addToFront.booleanValue()===false&&addToEnd.booleanValue()===true){result=2;}
- if(addToFront.booleanValue()===true&&addToEnd.booleanValue()===true){result=3;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"AddBoundaryPointsForLines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryPointsForLines",exc));}else{throw exc;}}
- return result;},closeAreaTG:function(tg){try{if(tg.Pixels===null||tg.Pixels.isEmpty())
- return;var pt0=tg.Pixels.get(0);var ptn=tg.Pixels.get(tg.Pixels.size()-1);if(pt0.x!==ptn.x||pt0.y!==ptn.y)
- tg.Pixels.add(pt0);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"closeAreaTG",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside closeAreaTG",exc));}else{throw exc;}}
- return;},fillDMA:function(tg,clipBounds){var shapes=new java.util.ArrayList();try{switch(tg.get_LineType()){case 23114000:case 23115000:case 23350000:case 23113000:case 22134000:case 22624000:case 23111001:case 23111000:case 22340000:case 22350000:case 23131200:case 23132000:break;default:return shapes;}
- var shape=null;var j=0;var tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();var n=0;if(tg.LatLongs!==null)
- n=tg.LatLongs.size();else
- n=tg.Pixels.size();for(j=0;j<n;j++)
- tg2.Pixels.add(tg.Pixels.get(j));armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.closeAreaTG(tg2);if(clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg2,clipBounds);if(tg2.Pixels===null||tg2.Pixels.isEmpty())
- return shapes;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.setFillColor(tg.get_FillColor());shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- shape.lineTo(tg2.Pixels.get(j));shapes.add(shape);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"fillDMA",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside fillDMA",exc));}else{throw exc;}}
- return shapes;},addAbatisFill:function(tg,shapes){try{if(tg.Pixels===null||tg.Pixels.size()<2||tg.get_FillColor()===null||tg.get_FillColor().getAlpha()<2||shapes===null)
- return;var j=0;var n=tg.Pixels.size();var shape=null;var tg2=null;switch(tg.get_LineType()){case 23410000:var dist0=0;var dist1=0;var dist2=0;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());if(new Boolean(tg.Pixels!==null&tg.Pixels.size()>=300).valueOf()){dist0=Math.abs(tg.Pixels.get(0).x-tg.Pixels.get(50).x);dist1=Math.abs(tg.Pixels.get(100).x-tg.Pixels.get(150).x);dist2=Math.abs(tg.Pixels.get(200).x-tg.Pixels.get(250).x);var start=-1;var end=-1;if(dist0>=dist1&&dist0>=dist2){start=0;end=99;}else if(dist1>=dist0&&dist1>=dist2){start=100;end=199;}else{start=200;end=299;}
- shape.moveTo(tg.Pixels.get(start));for(j=start;j<=end;j++)
- shape.lineTo(tg.Pixels.get(j));}
- break;case 23120000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();if(tg.Pixels!==null&&tg.Pixels.size()>2){tg2.Pixels.add(tg.Pixels.get(n-3));tg2.Pixels.add(tg.Pixels.get(n-2));tg2.Pixels.add(tg.Pixels.get(n-1));tg2.Pixels.add(tg.Pixels.get(n-3));shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- shape.lineTo(tg2.Pixels.get(j));}
- break;default:return;}
- if(shapes!==null)
- shapes.add(0,shape);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"addAbatisFill",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside addAbatisFill",exc));}else{throw exc;}}
- return;},LinesWithFill:function(tg,clipBounds){var shapes=null;try{if(tg.get_FillColor()===null||tg.get_FillColor().getAlpha()<=1||tg.Pixels===null||tg.Pixels.isEmpty())
- {return shapes;}
- switch(tg.get_LineType()){case 23120000:case 22521420:case 22521410:case 22521300:case 22521200:case 22521100:case 22320000:case 21700000:case 21710000:case 212500000:case 212600000:case 212100000:case 211600000:case 211900000:case 211400000:case 25211000:case 25212000:return shapes;case 24326100:return null;case 23114000:case 23115000:case 23350000:case 23113000:case 22134000:case 22624000:case 23111000:case 22340000:case 22350000:case 23131200:case 23132000:return armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.fillDMA(tg,clipBounds);default:break;}
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.LinesWithFill(tg.get_LineType())===false)
- return shapes;shapes=new java.util.ArrayList();var shape=null;var tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();tg2.Pixels.addAll(tg.Pixels);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.closeAreaTG(tg2);if(clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg2,clipBounds);if(tg2.Pixels===null||tg2.Pixels.isEmpty())
- return null;var j=0;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.setFillColor(tg.get_FillColor());shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- {shape.lineTo(tg2.Pixels.get(j));}
- if(tg.get_FillColor()!==null||tg.get_FillColor().getAlpha()>1)
- {shapes.add(shape);}
- else
- return null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"LinesWithFill",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside LinesWithFill",exc));}else{throw exc;}}
- return shapes;},ClipPolygon:function(tg,clipBounds){var poly=new java.util.ArrayList();try{var polygon=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.POINT2toPoint2D(tg.Pixels);var isClosed=new Boolean(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(tg.get_LineType()));var hashMap=new java.util.HashMap();var j=0;for(j=0;j<polygon.size();j++){hashMap.put(Integer.toString(j),polygon.get(j));}
- var clipBounds2=new armyc2.c2sd.graphics2d.Rectangle2D(clipBounds.getX()-50,clipBounds.getY()-50,clipBounds.getWidth()+100,clipBounds.getHeight()+100);var addedLinePoints=0;if(isClosed.booleanValue()===true){polygon.remove(polygon.size()-1);isClosed=new Boolean(true);}else{addedLinePoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.AddBoundaryPointsForLines(polygon,clipBounds2);}
- poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipRight(polygon,clipBounds2);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipTop(poly,clipBounds2);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipLeft(poly,clipBounds2);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipBottom(poly,clipBounds2);if(isClosed.booleanValue()===true){if(poly.size()>0){poly.add(poly.get(0));}}else{switch(addedLinePoints){case 0:break;case 1:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- break;case 2:if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;case 3:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;}}
- if(isClosed.booleanValue()===true){if(poly.size()>2){tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Point2DtoPOINT2Mapped(poly,hashMap);}else{tg.Pixels=new java.util.ArrayList();}}else{if(poly.size()>1)
- {tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Point2DtoPOINT2Mapped(poly,hashMap);}
- else
- {tg.Pixels=new java.util.ArrayList();}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"ClipPolygon",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ClipPolygon",exc));}else{throw exc;}}
- return poly;},ClipPolygon2:function(polygon,clipBounds,isClosed){var poly=new java.util.ArrayList();try{var addedLinePoints=0;if((isClosed).booleanValue()){if(polygon.size()>0)
- polygon.remove(polygon.size()-1);isClosed=new Boolean(true);}else{addedLinePoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.AddBoundaryPointsForLines(polygon,clipBounds);}
- poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipRight(polygon,clipBounds);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipTop(poly,clipBounds);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipLeft(poly,clipBounds);poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.clipBottom(poly,clipBounds);if(isClosed.booleanValue()===true){if(poly.size()>0){poly.add(poly.get(0));}}else{switch(addedLinePoints){case 0:break;case 1:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- break;case 2:if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;case 3:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2._className,"ClipPolygon2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ClipPolygon2",exc));}else{throw exc;}}
- return poly;},_className:"clsClipPolygon2"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad={AddBoundaryPointsForLines:function(polygon,clipBounds){var result=0;try{var pt02d=polygon.get(0);var ptLast2d=polygon.get((polygon.size()-1));var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt02d.getX(),pt02d.getY());var ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptLast2d.getX(),ptLast2d.getY());var nearestPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D();var clipArray=new armyc2.c2sd.graphics2d.Polygon();var j=0;var minDist=1.7976931348623157E308;var dist=0;var sidePt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var addToFront=new Boolean(false);var addToEnd=new Boolean(false);for(j=0;j<clipBounds.size();j++){clipArray.addPoint(Math.floor(clipBounds.get(j).getX()),Math.floor(clipBounds.get(j).getY()));}
- var totalX=0;var totalY=0;var counter=0;for(j=0;j<clipBounds.size()-1;j++){totalX+=clipBounds.get(j).getX();totalY+=clipBounds.get(j).getY();counter++;}
- if(clipBounds.get(0).getX()!==clipBounds.get(j).getX()||clipBounds.get(0).getY()!==clipBounds.get(j).getY()){totalX+=clipBounds.get(j).getX();totalY+=clipBounds.get(j).getY();counter++;}
- var avgX=totalX/counter;var avgY=totalY/counter;var ptCenter=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(avgX,avgY);var ptNear=null;if(clipArray.contains(pt02d.getX(),pt02d.getY())===false){for(j=0;j<clipBounds.size();j++){sidePt.x=clipBounds.get(j).getX();sidePt.y=clipBounds.get(j).getY();dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,sidePt);if(dist<minDist){minDist=dist;nearestPt.setLocation(sidePt.x,sidePt.y);}}
- ptNear=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(nearestPt.getX(),nearestPt.getY());ptNear=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ptNear,ptCenter,2);nearestPt.setLocation(ptNear.x,ptNear.y);polygon.add(0,nearestPt);addToFront=new Boolean(true);}
- nearestPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D();minDist=1.7976931348623157E308;if(clipArray.contains(ptLast2d.getX(),ptLast2d.getY())===false){for(j=0;j<clipBounds.size();j++){sidePt.x=clipBounds.get(j).getX();sidePt.y=clipBounds.get(j).getY();dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(ptLast,sidePt);if(dist<minDist){minDist=dist;nearestPt.setLocation(sidePt.x,sidePt.y);}}
- ptNear=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(nearestPt.getX(),nearestPt.getY());ptNear=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(ptNear,ptCenter,2);nearestPt.setLocation(ptNear.x,ptNear.y);polygon.add(nearestPt);addToEnd=new Boolean(true);}
- if(addToFront.booleanValue()===false&&addToEnd.booleanValue()===false){result=0;}else if(addToFront.booleanValue()===true&&addToEnd.booleanValue()===false){result=1;}else if(addToFront.booleanValue()===false&&addToEnd.booleanValue()===true){result=2;}else if(addToFront.booleanValue()===true&&addToEnd.booleanValue()===true){result=3;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"AddBoundaryPointsForLines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryPointsForLines",exc));}else{throw exc;}}
- return result;},CalcTrueIntersectDouble:function(m1,b1,m2,b2,bolVertical1,bolVertical2,X1,X2){var ptIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(X1,X2);try{var x=0;var y=0;if(bolVertical1===0&&bolVertical2===0)
- return ptIntersect;if(bolVertical1===0&&bolVertical2===1){ptIntersect.setLocation(X1,m2*X1+b2);return ptIntersect;}
- if(bolVertical1===1&&bolVertical2===0){ptIntersect.setLocation(X2,m1*X2+b1);return ptIntersect;}
- if(m1!==m2){x=(b2-b1)/(m1-m2);y=(m1*x+b1);ptIntersect.setLocation(x,y);return ptIntersect;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"CalcTrueIntersectDouble",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside CalcTrueIntersectDouble",exc));}else{throw exc;}}
- return ptIntersect;},intersectPoint2:function(previous,current,currentEdge){var ptIntersect=null;try{var ll=currentEdge.getP1();var ul=currentEdge.getP2();if(current.getX()===previous.getX())
- current.setLocation(current.getX()+1,current.getY());var m1=(ul.getY()-ll.getY())/(ul.getX()-ll.getX());var m2=(current.getY()-previous.getY())/(current.getX()-previous.getX());var b1=ul.getY()-m1*ul.getX();var b2=current.getY()-m2*current.getX();ptIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.CalcTrueIntersectDouble(m1,b1,m2,b2,1,1,0,0);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"intersectPoint2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside intersectPoint2",exc));}else{throw exc;}}
- return ptIntersect;},clipSide:function(pts,index,clipBounds){var ptsResult=null;try{var pt1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.get(index).getX(),clipBounds.get(index).getY());var pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.get(index+1).getX(),clipBounds.get(index+1).getY());var clipBoundsPoint=null;var ptClipBoundsIntersect=null;var m1=0;var m2=0;var b1=0;var b2=0;var b3=0;var b4=0;var ptPreviousIntersect=null;var ptCurrentIntersect=null;var j=0;var clipBoundsQuadrant=-1;var previousQuadrant=-1;var currentQuadrant=-1;var current=null;var previous=null;var intersectPt=null;var edge;ptsResult=new java.util.ArrayList();if(index===0){clipBoundsPoint=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.get(index+2).getX(),clipBounds.get(index+2).getY());}else if(index>1){clipBoundsPoint=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.get(index-2).getX(),clipBounds.get(index-2).getY());}else if(index===1){clipBoundsPoint=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.get(0).getX(),clipBounds.get(0).getY());}
- if(pt2.getX()===pt1.getX())
- pt2.setLocation(pt2.getX()+1,pt2.getY());if(pt2.getY()===pt1.getY())
- pt2.setLocation(pt2.getX(),pt2.getY()+1);for(j=0;j<pts.size();j++){current=pts.get(j);if(j===0){previous=pts.get(pts.size()-1);}else{previous=pts.get(j-1);}
- m1=(pt2.getY()-pt1.getY())/(pt2.getX()-pt1.getX());m2=-1.0/m1;b1=pt2.getY()-m1*pt2.getX();b2=previous.getY()-m2*previous.getX();b3=current.getY()-m2*current.getX();b4=clipBoundsPoint.getY()-m2*clipBoundsPoint.getX();ptPreviousIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.CalcTrueIntersectDouble(m1,b1,m2,b2,1,1,0,0);ptCurrentIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.CalcTrueIntersectDouble(m1,b1,m2,b3,1,1,0,0);ptClipBoundsIntersect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.CalcTrueIntersectDouble(m1,b1,m2,b4,1,1,0,0);clipBoundsQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(clipBoundsPoint.getX(),clipBoundsPoint.getY(),ptClipBoundsIntersect.getX(),ptClipBoundsIntersect.getY());previousQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(previous.getX(),previous.getY(),ptPreviousIntersect.getX(),ptPreviousIntersect.getY());currentQuadrant=armyc2.c2sd.JavaLineArray.lineutility.GetQuadrantDouble(current.getX(),current.getY(),ptCurrentIntersect.getX(),ptCurrentIntersect.getY());if(previousQuadrant===clipBoundsQuadrant&¤tQuadrant===clipBoundsQuadrant)
- ptsResult.add(current);else if(previousQuadrant===clipBoundsQuadrant&¤tQuadrant!==clipBoundsQuadrant){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt1,pt2);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.intersectPoint2(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}}else if(previousQuadrant!==clipBoundsQuadrant&¤tQuadrant===clipBoundsQuadrant){edge=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt1,pt2);intersectPt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.intersectPoint2(previous,current,edge);if(intersectPt!==null){ptsResult.add(intersectPt);}
- ptsResult.add(current);}else if(previousQuadrant!==clipBoundsQuadrant&¤tQuadrant!==clipBoundsQuadrant)
- continue;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"clipSide",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside clipSide",exc));}else{throw exc;}}
- return ptsResult;},addAbatisFill:function(tg,shapes){try{if(tg.Pixels===null||tg.Pixels.size()<2||tg.get_FillColor()===null||tg.get_FillColor().getAlpha()<2||shapes===null)
- return;var j=0;var n=tg.Pixels.size();var shape=null;var tg2=null;switch(tg.get_LineType()){case 23410000:var dist0=0;var dist1=0;var dist2=0;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());if(new Boolean(tg.Pixels!==null&tg.Pixels.size()>=300).valueOf()){dist0=Math.abs(tg.Pixels.get(0).x-tg.Pixels.get(50).x);dist1=Math.abs(tg.Pixels.get(100).x-tg.Pixels.get(150).x);dist2=Math.abs(tg.Pixels.get(200).x-tg.Pixels.get(250).x);var start=-1;var end=-1;if(dist0>=dist1&&dist0>=dist2){start=0;end=99;}else if(dist1>=dist0&&dist1>=dist2){start=100;end=199;}else{start=200;end=299;}
- shape.moveTo(tg.Pixels.get(start));for(j=start;j<=end;j++)
- shape.lineTo(tg.Pixels.get(j));}
- break;case 23120000:shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();if(tg.Pixels!==null&&tg.Pixels.size()>2){tg2.Pixels.add(tg.Pixels.get(n-3));tg2.Pixels.add(tg.Pixels.get(n-2));tg2.Pixels.add(tg.Pixels.get(n-1));tg2.Pixels.add(tg.Pixels.get(n-3));shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- shape.lineTo(tg2.Pixels.get(j));}
- break;default:return;}
- if(shapes!==null)
- shapes.add(0,shape);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"addAbatisFill",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside addAbatisFill",exc));}else{throw exc;}}
- return;},LinesWithFill:function(tg,clipBounds){var shapes=null;try{if(tg.get_FillColor()===null||tg.get_FillColor().getAlpha()<=1||tg.Pixels===null||tg.Pixels.isEmpty())
- return shapes;switch(tg.get_LineType()){case 23120000:case 22521420:case 22521410:case 22521300:case 22521200:case 22521100:case 22320000:case 21700000:case 21710000:case 212500000:case 212600000:case 212100000:case 211600000:case 211900000:case 211400000:case 25211000:case 25212000:return shapes;case 24326100:return null;case 23114000:case 23115000:case 23350000:case 23113000:case 22134000:case 22624000:case 23111000:case 22340000:case 22350000:case 23131200:case 23132000:return armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.fillDMA(tg,clipBounds);default:break;}
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.LinesWithFill(tg.get_LineType())===false)
- return shapes;shapes=new java.util.ArrayList();var shape=null;var tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();tg2.Pixels.addAll(tg.Pixels);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.closeAreaTG(tg2);if(clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg2,clipBounds);if(tg2.Pixels===null||tg2.Pixels.isEmpty())
- return null;var j=0;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- shape.lineTo(tg2.Pixels.get(j));if(tg.get_FillColor()!==null||tg.get_FillColor().getAlpha()>1){shapes.add(shape);}else
- return null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"LinesWithFill",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside LinesWithFill",exc));}else{throw exc;}}
- return shapes;},closeAreaTG:function(tg){try{if(tg.Pixels===null||tg.Pixels.isEmpty())
- return;var pt0=tg.Pixels.get(0);var ptn=tg.Pixels.get(tg.Pixels.size()-1);if(pt0.x!==ptn.x||pt0.y!==ptn.y)
- tg.Pixels.add(pt0);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"closeAreaTG",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside closeAreaTG",exc));}else{throw exc;}}
- return;},fillDMA:function(tg,clipBounds){var shapes=new java.util.ArrayList();try{switch(tg.get_LineType()){case 23114000:case 23115000:case 23350000:case 23113000:case 22134000:case 22624000:case 23111001:case 23111000:case 22340000:case 22350000:case 23131200:case 23132000:break;default:return shapes;}
- var shape=null;var j=0;var tg2=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg2.set_LineType(22131000);tg2.Pixels=new java.util.ArrayList();var n=0;if(tg.LatLongs!==null)
- n=tg.LatLongs.size();else
- n=tg.Pixels.size();for(j=0;j<n;j++)
- tg2.Pixels.add(tg.Pixels.get(j));armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.closeAreaTG(tg2);if(clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg2,clipBounds);if(tg2.Pixels===null||tg2.Pixels.isEmpty())
- return shapes;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setFillColor(tg.get_FillColor());shape.moveTo(tg2.Pixels.get(0));for(j=1;j<tg2.Pixels.size();j++)
- shape.lineTo(tg2.Pixels.get(j));shapes.add(shape);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"fillDMA",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside fillDMA",exc));}else{throw exc;}}
- return shapes;},isClosed:function(pts){var closed=false;var pt0=pts.get(0);var ptLast=pts.get(pts.size()-1);if(pt0.x===ptLast.x&&pt0.y===ptLast.y){closed=true;return true;}
- return false;},ClipPolygon:function(tg,clipBounds){var poly=new java.util.ArrayList();try{var isClosed=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.isClosed(tg.Pixels);clipBounds=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.expandPolygon(clipBounds,20);var polygon=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.POINT2toPoint2D(tg.Pixels);var j=0;var hashMap=new java.util.HashMap();for(j=0;j<polygon.size();j++)
- hashMap.put(Integer.toString(j),polygon.get(j));var clipBoundsPtStart=clipBounds.get(0);var clipBoundsPtEnd=clipBounds.get(clipBounds.size()-1);if(clipBoundsPtStart.getX()!==clipBoundsPtEnd.getX()||clipBoundsPtStart.getY()!==clipBoundsPtEnd.getY())
- clipBounds.add(clipBoundsPtStart);var addedLinePoints=0;if(isClosed.booleanValue()===true)
- polygon.remove(polygon.size()-1);else{addedLinePoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.AddBoundaryPointsForLines(polygon,clipBounds);}
- for(j=0;j<clipBounds.size()-1;j++){if(j===0)
- poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.clipSide(polygon,j,clipBounds);else
- poly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.clipSide(poly,j,clipBounds);}
- if(isClosed.booleanValue()===true){if(poly.size()>0){poly.add(poly.get(0));}}else{switch(addedLinePoints){case 0:break;case 1:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- break;case 2:if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;case 3:if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(0);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- if(poly.size()>0){poly.remove(poly.size()-1);}
- break;}}
- if(isClosed.booleanValue()===true){if(poly.size()>2){tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Point2DtoPOINT2Mapped(poly,hashMap);}else{tg.Pixels=new java.util.ArrayList();}}else{if(poly.size()>1){tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Point2DtoPOINT2Mapped(poly,hashMap);}else{tg.Pixels=new java.util.ArrayList();}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad._className,"ClipPolygon",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ClipPolygon",exc));}else{throw exc;}}
- return poly;},_className:"clsClipQuad"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer={setClientCoords:function(milStd,tg){try{var latLongs=new java.util.ArrayList();var j=0;var coords=milStd.getCoordinates();var pt2d=null;var pt2=null;for(j=0;j<coords.size();j++){pt2d=coords.get(j);pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.Point2DToPOINT2(pt2d);latLongs.add(pt2);}
- tg.set_LatLongs(latLongs);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","setClientCoords",new armyc2.c2sd.renderer.utilities.RendererException("Failed to set geo points or pixels for "+milStd.getSymbolID(),exc));}else{throw exc;}}},getClientCoords:function(tg){var coords=null;try{var j=0;var pt2d=null;var pt2=null;coords=new java.util.ArrayList();for(j=0;j<tg.LatLongs.size();j++){pt2=tg.LatLongs.get(j);pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);coords.add(pt2d);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","getClientCoords",new armyc2.c2sd.renderer.utilities.RendererException("Failed to set geo points or pixels for "+tg.get_SymbolId(),exc));}else{throw exc;}}
- return coords;},createMilStdSymboFromTGLight:function(tg,converter){var milStd=null;try{var j=0;var symbolId=tg.get_SymbolId();var std=tg.getSymbologyStandard();armyc2.c2sd.JavaTacticalRenderer.clsUtility.initializeLinetypes(std);var lineType=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetLinetypeFromString(symbolId);var status=tg.get_Status();if(status!==null&&status.equals("A")){if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isBasicShape(lineType)===false){}}
- tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.LatLongToPixels(tg.LatLongs,converter);var isClosedArea=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType);if(isClosedArea){armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.Pixels);armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.LatLongs);}
- var coords=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.getClientCoords(tg);tg.set_Font(new armyc2.c2sd.graphics2d.Font("Arial",armyc2.c2sd.graphics2d.Font.PLAIN,12));var modifiers=new java.util.HashMap();modifiers.put("W",tg.get_DTG());modifiers.put("W1",tg.get_DTG1());modifiers.put("H",tg.get_H());modifiers.put("H1",tg.get_H1());modifiers.put("H2",tg.get_H2());modifiers.put("T",tg.get_Name());modifiers.put("T1",tg.get_T1());modifiers.put("Y",tg.get_Location());modifiers.put("N",tg.get_N());milStd=new armyc2.c2sd.renderer.utilities.MilStdSymbol(symbolId,"1",coords,modifiers);if(lineType===243112000){var AM=milStd.getModifiers_AM_AN_X("AM");var AN=milStd.getModifiers_AM_AN_X("AN");var X=milStd.getModifiers_AM_AN_X("XN");if(AM!==null){var numSectors=AM.size()-1;if(Math.floor(AN.size()/2)<numSectors)
- numSectors=Math.floor(AN.size()/2);var left;var right;var min=0;var max=0;var strLeftRightMinMax="";var strH1="";for(j=0;j<numSectors;j++){left=(AN.get(2*j)).doubleValue();right=(AN.get(2*j+1)).doubleValue();min=(AM.get(j)).doubleValue();max=(AM.get(j+1)).doubleValue();strLeftRightMinMax+=Double.toString(left)+","+Double.toString(right)+","+Double.toString(min)+","+Double.toString(max);if(j<numSectors-1)
- strLeftRightMinMax+=",";if(X!==null&&j<X.size()){strH1+=Double.toString((X.get(j)).doubleValue());if(j<numSectors-1&&j<X.size()-1)
- strH1+=",";}}
- tg.set_H2(strLeftRightMinMax);tg.set_H1(strH1);}}
- switch(lineType){case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:case 24322100:case 24322200:case 24322300:X=milStd.getModifiers_AM_AN_X("XN");if(X!==null&&X.size()>0)
- tg.set_H(Double.toString((X.get(0)).doubleValue()));if(X!==null&&X.size()>1)
- tg.set_H1(Double.toString((X.get(1)).doubleValue()));break;case 22224000:case 22222000:case 22224001:case 22222001:case 22225000:case 22221000:case 22223000:var pt=tg.LatLongs.get(0);var pt2d0=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt.x,pt.y);var pt2d0Pixels=converter.GeoToPixels(pt2d0);var pt0Pixels=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d0Pixels.getX(),pt2d0Pixels.getY());var dist=10000;var pt2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt,dist,0);var pt2d1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);var pt2d1Pixels=converter.GeoToPixels(pt2d1);var pt1Pixels=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d1Pixels.getX(),pt2d1Pixels.getY());var distPixels=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0Pixels,pt1Pixels);var pixelsPerMeter=distPixels/dist;AM=milStd.getModifiers_AM_AN_X("AM");if(AM!==null){var H2="";for(j=0;j<AM.size();j++){H2+=AM.get(j).toString();if(j<AM.size()-1)
- H2+=",";}
- tg.set_H2(H2);}
- var strRadii=null;var maxWidth=0;var temp=0;var maxWidthMeters=0;if(tg.get_H2()!==null&&tg.get_H2().isEmpty()===false){strRadii=tg.get_H2().$plit(",");if(strRadii!==null&&strRadii.length>0){for(j=0;j<strRadii.length;j++){if(!Double.isNaN(Double.parseDouble(strRadii[j]))){temp=Double.parseDouble(strRadii[j]);if(temp>maxWidth)
- maxWidth=temp;}}
- maxWidthMeters=maxWidth;maxWidth*=pixelsPerMeter/2;}}
- if(tg.get_H2()!==null&&tg.get_H2().isEmpty()===false){if(strRadii!==null&&strRadii.length>0){var pixels=0;for(j=0;j<tg.Pixels.size();j++){if(tg.Pixels.size()>j){if(strRadii.length>j){if(!Double.isNaN(Double.parseDouble(strRadii[j]))){pixels=Double.parseDouble(strRadii[j])*pixelsPerMeter/2;tg.Pixels.get(j).style=Math.floor(pixels);}else
- tg.Pixels.get(j).style=Math.floor(maxWidth);}else
- tg.Pixels.get(j).style=Math.floor(maxWidth);}}}}
- tg.set_H2(Double.toString(maxWidthMeters));X=milStd.getModifiers_AM_AN_X("XN");if(X!==null&&X.size()>0)
- tg.set_H(Double.toString((X.get(0)).doubleValue()));if(X!==null&&X.size()>1)
- tg.set_H1(Double.toString((X.get(1)).doubleValue()));break;default:break;}
- switch(lineType){case 24361000:case 24363000:case 24362000:X=milStd.getModifiers_AM_AN_X("XN");strH1="";if(X!==null){strH1=Double.toString((X.get(0)).doubleValue());tg.set_H1(strH1);}
- break;default:break;}
- if(lineType===243111000){AM=milStd.getModifiers_AM_AN_X("AM");X=milStd.getModifiers_AM_AN_X("XN");strH2="";strH1="";if(AM!==null){for(j=0;j<AM.size();j++){strH2+=Double.toString((AM.get(j)).doubleValue());if(j<AM.size()-1)
- strH2+=",";if(X!==null&&j<X.size()){strH1+=Double.toString((X.get(j)).doubleValue());if(j<X.size()-1)
- strH1+=",";}
- if(j===2)
- break;}}
- tg.set_H2(strH2);tg.set_H1(strH1);}
- switch(lineType){case 24326101:case 24321200:case 24323200:case 24322200:case 24324200:case 24325200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24312000:case 24321300:case 24322300:case 24323300:case 24324300:case 24325300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24353000:case 24363000:case 24352000:case 24362000:AM=milStd.getModifiers_AM_AN_X("AM");if(AM!==null&&AM.size()>0){var strT1=Double.toString((AM.get(0)).doubleValue());tg.set_T1(strT1);}
- break;default:break;}
- if(lineType===24311000){AM=milStd.getModifiers_AM_AN_X("AM");AN=milStd.getModifiers_AM_AN_X("AN");if(AM!==null&&AM.size()>1&&AN!==null&&AN.size()>0){strT1=Double.toString((AM.get(0)).doubleValue());var strH=Double.toString((AM.get(1)).doubleValue());tg.set_T1(strT1);tg.set_H(strH);var strH2=Double.toString((AN.get(0)).doubleValue());tg.set_H2(strH2);}}
- milStd.setFillColor(tg.get_FillColor());milStd.setLineColor(tg.get_LineColor());milStd.setLineWidth(tg.get_LineThickness());milStd.setFillStyle(tg.get_TexturePaint());}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","createMilStdSymboFromTGLight",new armyc2.c2sd.renderer.utilities.RendererException("Failed to set geo points or pixels for "+tg.get_SymbolId(),exc));}else{throw exc;}}
- return milStd;},createTGLightFromMilStdSymbol:function(milStd,converter){var tg=new armyc2.c2sd.JavaTacticalRenderer.TGLight();var modifiersTG=armyc2.c2sd.renderer.utilities.ModifiersTG;try{var symbolId=milStd.getSymbolID();var std=milStd.getSymbologyStandard();tg.setSymbologyStandard(std);armyc2.c2sd.JavaTacticalRenderer.clsUtility.initializeLinetypes(std);tg.set_SymbolId(symbolId);var useLineInterpolation=milStd.getUseLineInterpolation();tg.set_UseLineInterpolation(useLineInterpolation);var lineType=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetLinetypeFromString(symbolId);if(lineType===23200000&&converter._scale>=250000)
- lineType=23200001;tg.set_LineType(lineType);var status=tg.get_Status();if(status!==null&&status.equals("A")){if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isBasicShape(lineType)===false)
- tg.set_LineStyle(1);}
- tg.set_VisibleModifiers(true);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setClientCoords(milStd,tg);tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.LatLongToPixels(tg.LatLongs,converter);tg.set_Font(new armyc2.c2sd.graphics2d.Font("Arial",armyc2.c2sd.graphics2d.Font.PLAIN,12));tg.set_FillColor(milStd.getFillColor());tg.set_LineColor(milStd.getLineColor());tg.set_LineThickness(milStd.getLineWidth());tg.set_TexturePaint(milStd.getFillStyle());tg.set_FontBackColor(armyc2.c2sd.renderer.utilities.Color.WHITE);tg.set_TextColor(tg.get_LineColor());if(milStd.getModifier("W")!==null){tg.set_DTG(milStd.getModifier("W"));}
- if(milStd.getModifier("W1")!==null){tg.set_DTG1(milStd.getModifier("W1"));}
- if(milStd.getModifier("H")!==null)
- tg.set_H(milStd.getModifier("H"));if(milStd.getModifier("H1")!==null)
- tg.set_H1(milStd.getModifier("H1"));if(milStd.getModifier("H2")!==null)
- tg.set_H2(milStd.getModifier("H2"));if(milStd.getModifier("T")!==null)
- tg.set_Name(milStd.getModifier("T"));if(milStd.getModifier("T1")!==null)
- tg.set_T1(milStd.getModifier("T1"));if(milStd.getModifier("Y")!==null)
- tg.set_Location(milStd.getModifier("Y"));if(milStd.getModifier("N")!==null)
- tg.set_N(milStd.getModifier("N"));var isClosedArea=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType);if(isClosedArea){armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.Pixels);armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.LatLongs);}
- if(lineType===243112000){var AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);var AN=milStd.getModifiers_AM_AN_X(modifiersTG.AN_AZIMUTH);var X=milStd.getModifiers_AM_AN_X(modifiersTG.X_ALTITUDE_DEPTH);if(AM!==null){var numSectors=AM.length-1;if(Math.floor(AN.length/2)<numSectors)
- numSectors=Math.floor(AN.length/2);var left;var right;var min=0;var max=0;var strLeftRightMinMax="";var strH1="";for(var j=0;j<numSectors;j++)
- {left=AN[2*j];right=AN[2*j+1];min=AM[j];max=AM[j+1];strLeftRightMinMax+=Double.toString(left)+","+Double.toString(right)+","+Double.toString(min)+","+Double.toString(max);if(j<numSectors-1)
- strLeftRightMinMax+=",";if(X!==null&&j<X.length)
- {strH1+=X[j];if(j<numSectors-1&&j<X.length-1)
- strH1+=",";}}
- tg.set_H2(strLeftRightMinMax);tg.set_H1(strH1);}}
- var j=0;if(lineType===15000003||lineType===15000004)
- {var minLat=tg.LatLongs.get(0).y;var maxLat=tg.LatLongs.get(0).y;var minLong=tg.LatLongs.get(0).x;var maxLong=tg.LatLongs.get(0).x;for(j=1;j<tg.LatLongs.size();j++)
- {if(tg.LatLongs.get(j).x<minLong)
- minLong=tg.LatLongs.get(j).x;if(tg.LatLongs.get(j).x>maxLong)
- maxLong=tg.LatLongs.get(j).x;if(tg.LatLongs.get(j).y<minLat)
- minLat=tg.LatLongs.get(j).y;if(tg.LatLongs.get(j).y>maxLat)
- maxLat=tg.LatLongs.get(j).y;}
- tg.LatLongs=new java.util.ArrayList();tg.LatLongs.add(new armyc2.c2sd.JavaLineArray.POINT2(minLong,maxLat));tg.LatLongs.add(new armyc2.c2sd.JavaLineArray.POINT2(maxLong,maxLat));tg.LatLongs.add(new armyc2.c2sd.JavaLineArray.POINT2(maxLong,minLat));tg.LatLongs.add(new armyc2.c2sd.JavaLineArray.POINT2(minLong,minLat));if(lineType===15000004)
- tg.LatLongs.add(new armyc2.c2sd.JavaLineArray.POINT2(minLong,maxLat));tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.LatLongToPixels(tg.LatLongs,converter);}
- switch(lineType){case 15000001:case 15000000:case 15000003:var H2=null;var dist=0;var pt0;var pt1;var AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);if(AM!==null&&AM.length>0){H2=AM[0].toString();tg.set_H2(H2);}
- for(j=0;j<tg.LatLongs.size();j++){if(tg.LatLongs.size()>j){if(!Double.isNaN(Double.parseDouble(H2))){if(j===0){dist=Double.parseDouble(H2);pt0=tg.LatLongs.get(0);pt1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,dist,45);var pt02d=new armyc2.c2sd.graphics2d.Point2D();pt02d.x=pt0.x;pt02d.y=pt0.y;pt12d=new armyc2.c2sd.graphics2d.Point2D();pt12d.x=pt1.x;pt12d.y=pt1.y;pt02d=converter.GeoToPixels(pt02d);pt12d=converter.GeoToPixels(pt12d);pt0.x=pt02d.getX();pt0.y=pt02d.getY();pt1.x=pt12d.getX();pt1.y=pt12d.getY();dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);}
- tg.Pixels.get(j).style=Math.round(dist);}else
- tg.Pixels.get(j).style=0;}}
- break;default:break;}
- switch(lineType){case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:case 24322100:case 24322200:case 24322300:X=milStd.getModifiers_AM_AN_X(modifiersTG.X_ALTITUDE_DEPTH);if(X!==null&&X.length>0)
- tg.set_H(X[0]);if(X!==null&&X.length>1)
- tg.set_H1(X[1]);break;case 22224000:case 22222000:case 22224001:case 22222001:case 22225000:case 22221000:case 22223000:var pt=tg.LatLongs.get(0);var pt2d0=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt.x,pt.y);var pt2d0Pixels=converter.GeoToPixels(pt2d0);var pt0Pixels=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d0Pixels.getX(),pt2d0Pixels.getY());var dist=10000;var pt2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt,dist,0);var pt2d1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);var pt2d1Pixels=converter.GeoToPixels(pt2d1);var pt1Pixels=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d1Pixels.getX(),pt2d1Pixels.getY());var distPixels=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0Pixels,pt1Pixels);var pixelsPerMeter=distPixels/dist;AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);if(AM!==null){var H2="";for(j=0;j<AM.length;j++){H2+=AM[j].toString();if(j<AM.length-1)
- H2+=",";}
- tg.set_H2(H2);}
- var strRadii=null;var maxWidth=0;var temp=0;var maxWidthMeters=0;if(tg.get_H2()!==null&&tg.get_H2().isEmpty()===false){strRadii=tg.get_H2().$plit(",");if(strRadii!==null&&strRadii.length>0){for(j=0;j<strRadii.length;j++){if(!Double.isNaN(Double.parseDouble(strRadii[j]))){temp=Double.parseDouble(strRadii[j]);if(temp>maxWidth)
- maxWidth=temp;}}
- maxWidthMeters=maxWidth;maxWidth*=pixelsPerMeter/2;}}
- if(tg.get_H2()!==null&&tg.get_H2().isEmpty()===false){if(strRadii!==null&&strRadii.length>0){var pixels=0;for(j=0;j<tg.Pixels.size();j++){if(tg.Pixels.size()>j){if(strRadii.length>j){if(!Double.isNaN(Double.parseDouble(strRadii[j]))){pixels=Double.parseDouble(strRadii[j])*pixelsPerMeter/2;tg.Pixels.get(j).style=Math.floor(pixels);}else
- tg.Pixels.get(j).style=Math.floor(maxWidth);}else
- tg.Pixels.get(j).style=Math.floor(maxWidth);}}}}
- tg.set_H2(Double.toString(maxWidthMeters));X=milStd.getModifiers_AM_AN_X(modifiersTG.X_ALTITUDE_DEPTH);if(X!==null&&X.length>0)
- tg.set_H(X[0]);if(X!==null&&X.length>1)
- tg.set_H1(X[1]);break;default:break;}
- switch(lineType)
- {case 24361000:case 24363000:case 24362000:X=milStd.getModifiers_AM_AN_X(modifiersTG.X_ALTITUDE_DEPTH);strH1="";if(X!==null){strH1=X[0];tg.set_H1(strH1);}
- break;default:break;}
- if(lineType===243111000)
- {AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);X=milStd.getModifiers_AM_AN_X(modifiersTG.X_ALTITUDE_DEPTH);var strH2="";strH1="";if(AM!==null)
- {for(j=0;j<AM.length;j++)
- {strH2+=AM[j];if(j<AM.length-1)
- strH2+=",";if(X!==null&&j<X.length)
- {strH1+=X[j];if(j<X.length-1)
- strH1+=",";}
- if(j===2)
- break;}}
- tg.set_H2(strH2);tg.set_H1(strH1);}
- switch(lineType){case 24326101:case 24321200:case 24323200:case 24322200:case 24324200:case 24325200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24312000:case 24321300:case 24322300:case 24323300:case 24324300:case 24325300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24353000:case 24363000:case 24352000:case 24362000:case 15000002:AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);if(AM!==null&&AM.length>0){var strT1=AM[0];tg.set_T1(strT1);}
- else if(lineType===15000002&&tg.LatLongs.size()>1){var dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(tg.LatLongs.get(0),tg.LatLongs.get(1),null,null);var strT1=Double.toString(dist);tg.set_T1(strT1);}
- break;default:break;}
- if(lineType===24311000){AM=milStd.getModifiers_AM_AN_X(modifiersTG.AM_DISTANCE);AN=milStd.getModifiers_AM_AN_X(modifiersTG.AN_AZIMUTH);if(AM!==null&&AM.length>1&&AN!==null&&AN.length>0)
- {strT1=AM[0];var strH=AM[1];tg.set_T1(strT1);tg.set_H(strH);strH2=AN[0];tg.set_H2(strH2);}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","createTGLightfromMilStdSymbol",new armyc2.c2sd.renderer.utilities.RendererException("Failed to build multipoint TG for "+milStd.getSymbolID(),exc));}else{throw exc;}}
- return tg;},render:function(symbol,converter){try{var tg=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.createTGLightFromMilStdSymbol(symbol,converter);var shapeInfos=new java.util.ArrayList();var modifierShapeInfos=new java.util.ArrayList();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterAXADPoints(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterPoints(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.GetLineArray(tg,converter,shapeInfos,modifierShapeInfos);symbol.setModifierShapes(modifierShapeInfos);symbol.setSymbolShapes(shapeInfos);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","render",new armyc2.c2sd.renderer.utilities.RendererException("Failed to render "+symbol.getSymbolID(),exc));}else{throw exc;}}
- return;},render_TG:function(tg,converter,shapeInfos,modifierShapeInfos){try{var lineType=-1;var isClosedArea=false;armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setHostileLC(tg);var symbolId=tg.get_SymbolId();lineType=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(symbolId);if(lineType<0){lineType=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetLinetypeFromString(symbolId);}
- isClosedArea=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType);if(isClosedArea){armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.Pixels);armyc2.c2sd.JavaTacticalRenderer.clsUtility.ClosePolygon(tg.LatLongs);}
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterAXADPoints(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterPoints(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.GetLineArray(tg,converter,shapeInfos,modifierShapeInfos);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","render",new armyc2.c2sd.renderer.utilities.RendererException("Failed to render "+tg.get_SymbolId(),exc));}else{throw exc;}}
- return;},GetLineArray:function(tg,converter,shapeInfos,modifierShapeInfos){try{var shapes=new java.util.ArrayList();var modifierShapes=new java.util.ArrayList();var lineType=tg.get_LineType();var minPoints2=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetMinPoints(lineType);var minPoints=new armyc2.c2sd.JavaLineArray.ref();var channelPoints=new java.util.ArrayList();var bolChange1=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,minPoints);var bolMeTOC=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(tg.get_SymbolId());tg.modifiers=new java.util.ArrayList();var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers(tg,g2d,null);var rev=tg.getSymbologyStandard();var hatchShape=null;if(converter===null)
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.getHatchShape(tg,bi);if(tg.Pixels.size()<minPoints2){lineType=-1;bolChange1=false;}
- if(bolChange1){tg.Pixels.clear();bolChange1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Change1TacticalAreas(tg,lineType,converter,shapes);}else if(bolMeTOC>0){try{armyc2.c2sd.JavaTacticalRenderer.clsMETOC.GetMeTOCShape(tg,shapes,rev);}catch(ex){if(Clazz.instanceOf(ex)){armyc2.c2sd.JavaTacticalRenderer.clsUtility.WriteFile("Error in ClsMETOC.GetMeTOCShape");}else{throw ex;}}}else{if(armyc2.c2sd.JavaLineArray.CELineArray.CIsChannel(lineType)===0){if(lineType!==23111001){tg.Pixels=armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2(lineType,tg.Pixels,shapes,null,rev);armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetIntegralTextShapes(tg,g2d,shapes);}
- if(lineType===23111001){var tempShapes=null;var partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);var pixels=null;var l=0;var k=0;for(l=0;l<partitions.size();l++){tempShapes=new java.util.ArrayList();pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++){pixels.add(tg.Pixels.get(k));}
- pixels=armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2(lineType,pixels,tempShapes,null,rev);shapes.addAll(tempShapes);}}}else{armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawChannel(tg.Pixels,lineType,tg,shapes,channelPoints,rev);tg.Pixels=channelPoints;}}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.SetShapeProperties(tg,shapes,bi);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers2(tg);if(hatchShape!==null)
- shapes.add(hatchShape);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(shapeInfos,shapes);if(modifierShapeInfos!==null){armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,modifierShapes,false,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(modifierShapeInfos,modifierShapes);bi.flush();g2d.dispose();bi=null;g2d=null;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","GetLineArray",new armyc2.c2sd.renderer.utilities.RendererException("Points calculator failed for "+tg.get_SymbolId(),exc));}else{throw exc;}}
- return;},Shape2ToShapeInfo2:function(shape){var si=null;try{var s=shape.getShape();si=new armyc2.c2sd.renderer.utilities.ShapeInfo(s);si.setAffineTransform(shape.getAffineTransform());si.setFillColor(shape.getFillColor());if(shape.getGlyphPosition()!==null)
- si.setGlyphPosition(shape.getGlyphPosition());si.setLineColor(shape.getLineColor());si.setModifierString(shape.getModifierString());si.setModifierStringAngle(shape.getModifierStringAngle());if(shape.getPolylines()!==null)
- si.setPolylines(shape.getPolylines());si.setShapeType(shape.getShapeType());si.setStroke(shape.getStroke());if(s===null){si.setTextLayout(shape.getTextLayout());}
- if(s!==null)
- si.setShape(s);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","Shape2ToShapeInfo",new armyc2.c2sd.renderer.utilities.RendererException("Failed to build ShapeInfo ArrayList",exc));}else{throw exc;}}
- return si;},Shape2ToShapeInfo:function(shapeInfos,shapes){try{var j=0;var shape=null;if(shapes===null||shapeInfos===null||shapes.isEmpty())
- return;var si=null;for(j=0;j<shapes.size();j++){shape=shapes.get(j);si=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo2(shape);shapeInfos.add(si);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","Shape2ToShapeInfo",new armyc2.c2sd.renderer.utilities.RendererException("Failed to build ShapeInfo ArrayList",exc));}else{throw exc;}}
- return;},renderWithPolylines:function(mss,converter,clipArea){try{var tg=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.createTGLightFromMilStdSymbol(mss,converter);var shapeInfos=new java.util.ArrayList();var modifierShapeInfos=new java.util.ArrayList();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.render_GE(tg,shapeInfos,modifierShapeInfos,converter,clipArea);mss.setSymbolShapes(shapeInfos);mss.setModifierShapes(modifierShapeInfos);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","renderWithPolylines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside renderWithPolylines",exc));}else{throw exc;}}},render_GE:function(tg,shapeInfos,modifierShapeInfos,converter,clipArea){try{var clipBounds=null;armyc2.c2sd.JavaLineArray.CELineArray.setClient("ge");var origPixels=null;var origLatLongs=null;if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.segmentColorsSet(tg))
- {origPixels=tg.Pixels.clone();origLatLongs=tg.LatLongs.clone();}
- var shiftLines=armyc2.c2sd.JavaLineArray.Channels.getShiftLines();if(shiftLines){var affiliation=tg.get_Affiliation();armyc2.c2sd.JavaLineArray.Channels.setAffiliation(affiliation);}
- armyc2.c2sd.JavaLineArray.CELineArray.setMinLength(2.5);var clipPoints=null;if(clipArea!==null){if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle)
- {clipBounds=clipArea;}
- else if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle2D)
- {clipBounds=clipArea;}
- else if(clipArea instanceof java.util.ArrayList)
- {clipPoints=clipArea;}}
- var useClipPoints=false;if(useClipPoints===true&&clipBounds!==null){var x=clipBounds.getMinX();var y=clipBounds.getMinY();var width=clipBounds.getWidth();var height=clipBounds.getHeight();clipPoints=new java.util.ArrayList();clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x,y));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x+width,y));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x+width,y+height));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x,y+height));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x,y));clipBounds=null;}
- if(tg.get_Client()===null||tg.get_Client().isEmpty())
- tg.set_client("ge");armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.RemoveDuplicatePoints(tg);var rev=tg.getSymbologyStandard();armyc2.c2sd.JavaTacticalRenderer.clsUtility.initializeLinetypes(rev);armyc2.c2sd.JavaTacticalRenderer.clsUtility.setRevC(tg);var linetype=tg.get_LineType();if(linetype<0){linetype=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetLinetypeFromString(tg.get_SymbolId());tg.set_LineType(linetype);}
- var isTextFlipped=new Boolean(false);var shapes=null;armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setSplineLinetype(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setHostileLC(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.SegmentGeoPoints(tg,converter);if(clipBounds!==null||clipPoints!==null)
- {if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===true)
- {if(clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg,clipBounds);else if(clipPoints!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg,clipPoints);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.removeTrailingPoints(tg,clipArea);tg.LatLongs=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PixelsToLatLong(tg.Pixels,converter);}}
- if(origPixels!==null){if(tg.Pixels.isEmpty()===true)
- return;else{tg.Pixels=origPixels;tg.LatLongs=origLatLongs;clipArea=null;}}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.InterpolatePixels(tg);tg.modifiers=new java.util.ArrayList();var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers(tg,g2d,clipArea);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.FilterPoints2(tg,converter);armyc2.c2sd.JavaTacticalRenderer.clsUtility.FilterVerticalSegments(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterAXADPoints(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.ClearPixelsStyle(tg);var linesWithFillShapes=null;if(clipBounds!==null)
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.LinesWithFill(tg,clipBounds);else if(clipPoints!==null)
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.LinesWithFill(tg,clipPoints);else if(clipArea===null)
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.LinesWithFill(tg,clipBounds);var rangeFanFillShapes=null;var savefillStyle=tg.get_FillStyle();if(linetype===243111000)
- tg.set_Fillstyle(0);if(clipBounds!==null)
- {shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,(isTextFlipped).booleanValue(),clipBounds);}
- else if(clipPoints!==null)
- shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,(isTextFlipped).booleanValue(),clipPoints);else if(clipArea===null)
- shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,(isTextFlipped).booleanValue(),clipBounds);if(linetype===243111000||linetype===243112000)
- {var tg1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetCircularRangeFanFillTG(tg);tg1.set_Fillstyle(savefillStyle);if(clipBounds!==null)
- {rangeFanFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg1,converter,(isTextFlipped).booleanValue(),clipBounds);}
- else if(clipPoints!==null)
- {rangeFanFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg1,converter,(isTextFlipped).booleanValue(),clipPoints);}
- else if(clipArea===null)
- {rangeFanFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg1,converter,(isTextFlipped).booleanValue(),clipBounds);}
- if(rangeFanFillShapes!==null)
- {shapes.addAll(0,rangeFanFillShapes);}}
- else
- {armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.getAutoshapeFillShape(tg,shapes);}
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.LinesWithSeparateFill(tg.get_LineType(),shapes);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.addAbatisFill(tg,shapes);if(shapes!==null&&linesWithFillShapes!==null&&linesWithFillShapes.size()>0)
- shapes.addAll(0,linesWithFillShapes);var bPostClip=false;bPostClip=true;if(bPostClip===true)
- {if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===false&&clipBounds!==null)
- {shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.postClipShapes(tg,shapes,clipBounds);}
- else if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===false&&clipPoints!==null)
- {shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.postClipShapes(tg,shapes,clipPoints);}}
- if(modifierShapeInfos!==null){var textSpecs=new java.util.ArrayList();armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecs,(isTextFlipped).booleanValue(),converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(modifierShapeInfos,textSpecs);}
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.buildHatchFills2(tg,shapes);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(shapeInfos,shapes);if(clipBounds!==null)
- {armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.SetShapeInfosPolylines(tg,shapeInfos,clipBounds);}
- else if(clipPoints!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.SetShapeInfosPolylines(tg,shapeInfos,clipPoints);else if(clipArea===null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.SetShapeInfosPolylines(tg,shapeInfos,clipBounds);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"render_GE",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside render_GE",exc));}else{throw exc;}}
- return;},setHostileLC:function(tg){try{var usas1314=new Boolean(true);var pts=new java.util.ArrayList();var j=0;switch(tg.get_LineType()){case 22123000:if(usas1314.booleanValue()===false)
- break;if(tg.get_Affiliation()!==null&&!tg.get_Affiliation().equals("H"))
- break;pts=tg.Pixels.clone();for(j=0;j<tg.Pixels.size();j++)
- tg.Pixels.set(j,pts.get(pts.size()-j-1));pts=tg.LatLongs.clone();for(j=0;j<tg.LatLongs.size();j++)
- tg.LatLongs.set(j,pts.get(pts.size()-j-1));break;case 23112000:pts=tg.Pixels.clone();for(j=0;j<tg.Pixels.size();j++)
- tg.Pixels.set(j,pts.get(pts.size()-j-1));pts=tg.LatLongs.clone();for(j=0;j<tg.LatLongs.size();j++)
- tg.LatLongs.set(j,pts.get(pts.size()-j-1));break;default:return;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"setHostileLC",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside setHostileLC",exc));}else{throw exc;}}},getScale:function(tg,converter,clipBounds){var scale=0;try{if(clipBounds===null||converter===null)
- return 0;var clipRect=null;var clipArray=null;if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle2D)){clipRect=clipBounds;}else if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle2D)){clipRect=clipBounds;}else if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle)){clipRect=clipBounds;}else if(clipBounds.getClass().isAssignableFrom(java.util.ArrayList)){clipArray=clipBounds;clipRect=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.getMBR(clipArray);}
- var left=clipRect.getMinX();var right=clipRect.getMaxX();var distanceInPixels=Math.abs(right-left);var top=clipRect.getMinY();var ul=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(left,top);var ur=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(right,top);var ulGeo=converter.PixelsToGeo(ul);var urGeo=converter.PixelsToGeo(ur);var pt2ulGeo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ulGeo.getX(),ulGeo.getY());var pt2urGeo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(urGeo.getX(),urGeo.getY());var distanceInMeters=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(pt2ulGeo,pt2urGeo,null,null);scale=(distanceInPixels/distanceInMeters)*(0.010416666666666666)*(0.025400050800101603);scale=1.0/scale;var lineType=tg.get_LineType();if(lineType===23200000&&scale>=250000)
- tg.set_LineType(23200001);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"getScale",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getScale",exc));}else{throw exc;}}
- return scale;},setClip:function(clipBounds,clipRect,clipArray){try{if(clipBounds===null){return false;}else if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle2D)){clipRect.setRect(clipBounds);}else if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle2D)){clipRect.setRect(clipBounds);}else if(clipBounds.getClass().isAssignableFrom(armyc2.c2sd.graphics2d.Rectangle)){clipRect.setRect(clipBounds);}else if(clipBounds.getClass().isAssignableFrom(java.util.ArrayList)){clipArray.addAll(clipBounds);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"setClip",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside setClip",exc));}else{throw exc;}}
- return true;},render:function(mss,converter,clipBounds){try{var shapeInfos=new java.util.ArrayList();var modifierShapeInfos=new java.util.ArrayList();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.render(mss,converter,shapeInfos,modifierShapeInfos,clipBounds);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"render",new armyc2.c2sd.renderer.utilities.RendererException("render",exc));}else{throw exc;}}},render:function(mss,converter,shapeInfos,modifierShapeInfos,clipBounds){try{var shiftLines=armyc2.c2sd.JavaLineArray.Channels.getShiftLines();var clipRect=new armyc2.c2sd.graphics2d.Rectangle2D();var clipArray=new java.util.ArrayList();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setClip(clipBounds,clipRect,clipArray);var rev=mss.getSymbologyStandard();armyc2.c2sd.JavaTacticalRenderer.clsUtility.initializeLinetypes(rev);var tg=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.createTGLightFromMilStdSymbol(mss,converter);armyc2.c2sd.JavaLineArray.CELineArray.setClient("generic");if(shiftLines){var affiliation=tg.get_Affiliation();armyc2.c2sd.JavaLineArray.Channels.setAffiliation(affiliation);}
- armyc2.c2sd.JavaLineArray.CELineArray.setMinLength(2.5);armyc2.c2sd.JavaTacticalRenderer.clsUtility.setRevC(tg);var scale=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.getScale(tg,converter,clipBounds);var linetype=tg.get_LineType();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.RemoveDuplicatePoints(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setHostileLC(tg);var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.SegmentGeoPoints(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.FilterAXADPoints(tg,converter);armyc2.c2sd.JavaTacticalRenderer.clsUtility.FilterVerticalSegments(tg);var isChange1Area=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(linetype,null);var isTextFlipped=false;var farLeftPixels=new java.util.ArrayList();var farRightPixels=new java.util.ArrayList();if(isChange1Area===false)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetFarPixels(tg,converter,farLeftPixels,farRightPixels);var shapesLeft=new java.util.ArrayList();var shapesRight=new java.util.ArrayList();var shapes=null;var textSpecsLeft=null;var textSpecsRight=null;textSpecsLeft=new java.util.ArrayList();textSpecsRight=new java.util.ArrayList();if(farLeftPixels.size()>0){tg.Pixels=farLeftPixels;shapesLeft=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecsLeft,isTextFlipped,null);}
- if(farRightPixels.size()>0){tg.Pixels=farRightPixels;shapesRight=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecsRight,isTextFlipped,null);}
- var textSpecs=new java.util.ArrayList();if(shapesLeft.isEmpty()||shapesRight.isEmpty()){var linesWithFillShapes=null;if(clipArray!==null&&!clipArray.isEmpty())
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.LinesWithFill(tg,clipArray);else if(clipRect!==null&&clipRect.getWidth()!==0)
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.LinesWithFill(tg,clipRect);else
- linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.LinesWithFill(tg,null);if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===true&&clipBounds!==null){if(clipArray!==null&&!clipArray.isEmpty())
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg,clipArray);else if(clipRect!==null&&clipRect.getWidth()!==0)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg,clipRect);tg.LatLongs=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PixelsToLatLong(tg.Pixels,converter);}
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.InterpolatePixels(tg);tg.modifiers=new java.util.ArrayList();armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers(tg,g2d,clipBounds);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.FilterPoints2(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.ClearPixelsStyle(tg);var rangeFanFillShapes=null;var savefillStyle=tg.get_FillStyle();if(linetype===243111000)
- tg.set_Fillstyle(0);shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);switch(linetype){case 243111000:case 243112000:var tg1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetCircularRangeFanFillTG(tg);tg1.set_Fillstyle(savefillStyle);rangeFanFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg1,converter,isTextFlipped,clipBounds);if(rangeFanFillShapes!==null){shapes.addAll(0,rangeFanFillShapes);}
- break;default:break;}
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.LinesWithSeparateFill(tg.get_LineType(),shapes);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.addAbatisFill(tg,shapes);if(shapes!==null&&linesWithFillShapes!==null&&linesWithFillShapes.size()>0)
- shapes.addAll(0,linesWithFillShapes);if(shapes!==null&&shapes.size()>0){armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecs,isTextFlipped,null);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(modifierShapeInfos,textSpecs);mss.setModifierShapes(modifierShapeInfos);}}else{shapes=shapesLeft;shapes.addAll(shapesRight);if(textSpecs!==null){textSpecs.addAll(textSpecsLeft);textSpecs.addAll(textSpecsRight);}}
- if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===false&&clipBounds!==null){shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.postClipShapes(tg,shapes,clipBounds);}
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(shapeInfos,shapes);mss.setSymbolShapes(shapeInfos);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"render",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside render",exc));}else{throw exc;}}
- return;},render:function(tg,converter,shapeInfos,modifierShapeInfos,clipBounds){try{armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.setHostileLC(tg);var isChange1Area=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(tg.get_LineType(),null);var isTextFlipped=false;var farLeftPixels=new java.util.ArrayList();var farRightPixels=new java.util.ArrayList();if(isChange1Area===false)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetFarPixels(tg,converter,farLeftPixels,farRightPixels);var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();var shapesLeft=new java.util.ArrayList();var shapesRight=new java.util.ArrayList();var shapes=null;var textSpecsLeft=null;var textSpecsRight=null;textSpecsLeft=new java.util.ArrayList();textSpecsRight=new java.util.ArrayList();if(farLeftPixels.size()>0){tg.Pixels=farLeftPixels;shapesLeft=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecsLeft,isTextFlipped,null);}
- if(farRightPixels.size()>0){tg.Pixels=farRightPixels;shapesRight=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecsRight,isTextFlipped,null);}
- var textSpecs=new java.util.ArrayList();if(shapesLeft.isEmpty()||shapesRight.isEmpty()){var linesWithFillShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.LinesWithFill(tg,clipBounds);if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===true&&clipBounds!==null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg,clipBounds);shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.GetLineArray(tg,converter,isTextFlipped,clipBounds);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.LinesWithSeparateFill(tg.get_LineType(),shapes);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.addAbatisFill(tg,shapes);if(shapes!==null&&linesWithFillShapes!==null&&linesWithFillShapes.size()>0)
- shapes.addAll(0,linesWithFillShapes);if(shapes!==null&&shapes.size()>0){armyc2.c2sd.JavaTacticalRenderer.Modifier2.DisplayModifiers2(tg,g2d,textSpecs,isTextFlipped,null);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(modifierShapeInfos,textSpecs);}}else{shapes=shapesLeft;shapes.addAll(shapesRight);if(textSpecs!==null){textSpecs.addAll(textSpecsLeft);textSpecs.addAll(textSpecsRight);}}
- if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.canClipPoints(tg).booleanValue()===false&&clipBounds!==null)
- shapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.postClipShapes(tg,shapes,clipBounds);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.Shape2ToShapeInfo(shapeInfos,shapes);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer._className,"render",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside render",exc));}else{throw exc;}}},_className:"clsRenderer"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2={getMSRShapes:function(tg,shapes){try{var linetype=tg.get_LineType();if(linetype!=25221000&&linetype!=25222000)
- return;var hmap=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getMSRSegmentColors(tg);var shape=null;var stroke=null;if(tg.get_Client().equalsIgnoreCase("ge"))
- stroke=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getLineStroke2(tg.get_LineThickness(),tg.get_LineStyle(),1,1);else
- stroke=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getLineStroke(tg.get_LineThickness(),tg.get_LineStyle(),1,1);var j=0;var color=null;var segShape=null;shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);shape.setLineColor(tg.get_LineColor());shape.setStroke(stroke);var strH=tg.get_H();if(strH!=null&&!strH.isEmpty()){var strs=strH.$plit(",");if(strs.length<2){shape.moveTo(tg.Pixels.get(0));for(j=1;j<tg.Pixels.size();j++){shape.lineTo(tg.Pixels.get(j));}
- shapes.add(shape);return;}}
- var lastColor=null;var dist=0;var dist2=0;var pt0=null;var pt1=null;var lastPt=null;for(j=0;j<tg.Pixels.size()-1;j++){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);if(hmap!==null&&hmap.containsKey(new Integer(j))){color=hmap.get(new Integer(j));if(color!==lastColor){if(segShape!==null)
- shapes.add(segShape);segShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);segShape.setLineColor(color);segShape.set_Style(tg.get_LineStyle());segShape.setStroke(stroke);}
- segShape.moveTo(pt0);segShape.lineTo(pt1);lastColor=new armyc2.c2sd.renderer.utilities.Color(color.toARGB());}else{if(hmap!==null&&hmap.containsKey(new Integer(j+1))){shape.moveTo(pt0);shape.lineTo(pt1);lastPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}else if(hmap!==null&&hmap.containsKey(new Integer(j-1))){shape.moveTo(pt0);shape.lineTo(pt1);lastPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}else if(j===tg.Pixels.size()-2){shape.moveTo(pt0);shape.lineTo(pt1);}else{if(lastPt===null){lastPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);shape.moveTo(lastPt);}
- dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);if(dist>10){shape.lineTo(pt1);lastPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}else{dist2=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(lastPt,pt1);if(dist2>10){shape.lineTo(pt1);lastPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}}}}}
- if(segShape!==null)
- shapes.add(segShape);shapes.add(shape);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2._className,"getMSRShapes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getMSRShapes",exc));}else{throw exc;}}},GetLineArray:function(tg,converter,isTextFlipped,clipBounds){var shapes=new java.util.ArrayList();try{if(tg.Pixels===null||tg.Pixels.isEmpty())
- return null;var x=0;var y=0;var width=0;var height=0;var clipBounds2=null;var rev=tg.getSymbologyStandard();var clipRect=null;var clipArray=null;if(clipBounds!==null){if(clipBounds instanceof armyc2.c2sd.graphics2d.Rectangle2D||clipBounds instanceof armyc2.c2sd.graphics2d.Rectangle){clipRect=clipBounds;x=clipRect.getMinX()-50;y=clipRect.getMinY()-50;width=clipRect.getWidth()+100;height=clipRect.getHeight()+100;clipBounds2=new armyc2.c2sd.graphics2d.Rectangle2D(x,y,width,height);}
- else if(clipBounds instanceof java.util.ArrayList)
- clipArray=clipBounds;}
- var lineType=tg.get_LineType();var minPoints2=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetMinPoints(lineType);var minPoints=new armyc2.c2sd.JavaLineArray.ref();var bolResult=armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,minPoints);var bolMeTOC=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(tg.get_SymbolId());var pts=new java.util.ArrayList();var usas1314=new Boolean(true);var j=0;switch(tg.get_LineType()){case 22612000:case 22623000:case 22612001:case 22623001:if(tg.Pixels.size()<2)
- return null;if((usas1314).booleanValue())
- break;pts.add(tg.Pixels.get(0));for(j=2;j<tg.Pixels.size();j++){pts.add(tg.Pixels.get(j));}
- pts.add(tg.Pixels.get(1));tg.Pixels=pts;break;case 231117100:case 231117101:pts=tg.Pixels.clone();for(j=0;j<tg.Pixels.size();j++)
- tg.Pixels.set(j,pts.get(pts.size()-j-1));break;default:break;}
- var bi=new armyc2.c2sd.graphics2d.BufferedImage(8,8,2);var g2d=bi.createGraphics();var hatchShape=armyc2.c2sd.JavaTacticalRenderer.clsUtility.getHatchShape(tg,bi);if(tg.Pixels.size()<minPoints2){bolResult=false;}
- if(bolResult){tg.Pixels.clear();bolResult=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Change1TacticalAreas(tg,lineType,converter,shapes);}else if(bolMeTOC>0){if(tg.Pixels.size()<2)
- return null;try{armyc2.c2sd.JavaTacticalRenderer.clsMETOC.GetMeTOCShape(tg,shapes,rev);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2._className,"GetLineArray",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetLineArray",exc));}else{throw exc;}}}else{if(tg.Pixels.size()<2)
- if(lineType!==12000000)
- return null;if(armyc2.c2sd.JavaLineArray.CELineArray.CIsChannel(lineType)===0){if(lineType===25222000||lineType===25221000){armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2.getMSRShapes(tg,shapes);}
- if(lineType!==23111001){tg.Pixels=armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2(lineType,tg.Pixels,shapes,clipBounds2,rev);}else if(lineType===23111001){var tempShapes=null;var partitions=armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.GetPartitions2(tg);var pixels=null;var l=0;var k=0;for(l=0;l<partitions.size();l++){tempShapes=new java.util.ArrayList();pixels=new java.util.ArrayList();for(k=partitions.get(l).start;k<=partitions.get(l).end_Renamed+1;k++){pixels.add(tg.Pixels.get(k));}
- pixels=armyc2.c2sd.JavaLineArray.arraysupport.GetLineArray2(lineType,pixels,tempShapes,clipBounds2,rev);shapes.addAll(tempShapes);}}}else{armyc2.c2sd.JavaTacticalRenderer.clsChannelUtility.DrawChannel(tg.Pixels,lineType,tg,shapes,null,rev);}}
- if(bolMeTOC<=0){if(lineType!==25222000&&lineType!==25221000)
- armyc2.c2sd.JavaTacticalRenderer.clsUtility.SetShapeProperties(tg,shapes,bi);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.ResolveDummyShapes(tg,shapes);}
- if(hatchShape!==null)
- shapes.add(hatchShape);armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers2(tg);armyc2.c2sd.JavaTacticalRenderer.Modifier2.GetIntegralTextShapes(tg,g2d,shapes);bi.flush();g2d.dispose();bi=null;g2d=null;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2._className,"GetLineArray",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetLineArray",exc));}else{throw exc;}}
- return shapes;},getAutoshapeFillShape:function(tg,shapes){try{if(shapes===null||shapes.size()===0)
- return;if(tg.Pixels===null||tg.Pixels.size()===0)
- return;var linetype=tg.get_LineType();var symbolID=tg.get_SymbolId();var j=0;var shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL);shape.setFillColor(tg.get_FillColor());shape.setLineColor(null);switch(linetype){case 211900000:if(shapes!==null&&!shapes.isEmpty())
- for(j=0;j<shapes.size();j++)
- shapes.get(j).setFillColor(null);shape.moveTo(tg.Pixels.get(0));for(j=1;j<26;j++)
- shape.lineTo(tg.Pixels.get(j));shape.lineTo(tg.Pixels.get(0));shapes.add(0,shape);break;case 212100000:case 211600000:if(shapes!==null&&!shapes.isEmpty())
- for(j=0;j<shapes.size();j++)
- shapes.get(j).setFillColor(null);shape.moveTo(tg.Pixels.get(0));for(j=1;j<tg.Pixels.size()-3;j++)
- shape.lineTo(tg.Pixels.get(j));shape.lineTo(tg.Pixels.get(0));shapes.add(0,shape);break;case 25211000:case 25212000:if(shapes!==null&&!shapes.isEmpty())
- for(j=0;j<shapes.size();j++)
- shapes.get(j).setFillColor(null);shape.moveTo(tg.Pixels.get(0));for(j=1;j<tg.Pixels.size();j++)
- shape.lineTo(tg.Pixels.get(j));shape.lineTo(tg.Pixels.get(0));shapes.add(0,shape);break;case 212500000:case 212600000:case 211400000:if(shapes!==null&&!shapes.isEmpty())
- for(j=0;j<shapes.size();j++)
- shapes.get(j).setFillColor(null);shape.moveTo(tg.Pixels.get(0));for(j=26;j<47;j++)
- shape.lineTo(tg.Pixels.get(j));shape.lineTo(tg.Pixels.get(23));shape.lineTo(tg.Pixels.get(24));shape.lineTo(tg.Pixels.get(25));shape.lineTo(tg.Pixels.get(0));shapes.add(0,shape);break;default:return;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer2._className,"getAutoshapeFillShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside getAutoshapeFillShape for "+symbolID+" case: "+linetype,exc));}else{throw exc;}}
- return;},_className:"clsRenderer2"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility={POINT2ToPoint:function(pt2){var pt=new armyc2.c2sd.graphics2d.Point();pt.x=Math.floor(pt2.x);pt.y=Math.floor(pt2.y);return pt;},PointToPOINT2:function(pt){var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt.x,pt.y);return pt2;},POINT2ToPoint2D:function(pt2){var pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);return pt2d;},Points2DToPOINT2:function(pts2d){var pts=new java.util.ArrayList();var pt=null;for(var j=0;j<pts2d.size();j++){pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2d.get(j).getX(),pts2d.get(j).getY());pts.add(pt);}
- return pts;},Point2DToPOINT2:function(pt2d){var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d.x,pt2d.y);return pt2;},addModifiersBeforeClipping:function(tg){var result=false;var linetype=tg.get_LineType();switch(linetype){case 26430000:case 26440000:case 26410000:case 26420000:case 26400000:case 25225000:case 25224000:case 25223000:case 25222000:case 25221000:case 25212000:case 25211000:case 24225000:case 24240000:case 24230000:case 24220000:case 24210000:case 24260000:case 24250000:case 24211000:case 23410000:case 23163000:case 22524000:case 22522100:case 22422000:case 22421000:case 22330000:case 22320000:case 22221000:case 22223000:case 22225000:case 22224000:case 22222000:case 22224001:case 22222001:case 22121000:case 212410000:case 212400000:case 212000000:case 211800000:case 21800000:case 21700000:case 21710000:case 212210000:case 212230000:case 212220000:case 212210001:case 212230001:case 212220001:case 22122000:case 22123000:case 22124000:case 22125000:case 22523000:case 22525000:case 22526000:case 22527000:case 22528000:case 22613000:result=true;break;default:break;}
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(linetype)===true)result=true;return result;},FilterPoints:function(tg){try{var lineType=tg.get_LineType();var minSpikeDistance=0;switch(lineType){case 23131100:case 23131200:case 23132000:case 22122000:case 22134000:case 23330000:case 23350000:minSpikeDistance=25;break;case 22123000:case 23115000:case 23114000:case 22624000:case 23111000:case 23111001:case 23113000:case 23112000:case 23134000:case 231111000:case 231112000:case 231113000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:minSpikeDistance=35;break;case 31131100:case 31131000:case 31131200:case 31131300:minSpikeDistance=60;break;case 31134000:case 31134100:case 31133000:case 31133100:minSpikeDistance=60;break;case 31134200:case 31134300:minSpikeDistance=60;break;case 31132300:case 31132200:case 31133200:minSpikeDistance=60;break;case 31132000:case 31132100:minSpikeDistance=40;break;case 31142000:case 32156000:case 32164000:case 32162000:minSpikeDistance=35;break;default:return;}
- var j=0;var dist=0;var pts=new java.util.ArrayList();var ptsGeo=new java.util.ArrayList();pts.add(tg.Pixels.get(0));ptsGeo.add(tg.LatLongs.get(0));var lastGoodPt=tg.Pixels.get(0);var currentPt=null;var currentPtGeo=null;var foundGoodPt=false;for(j=1;j<tg.Pixels.size();j++){currentPt=tg.Pixels.get(j);currentPtGeo=tg.LatLongs.get(j);if(currentPt.style===-1){lastGoodPt=currentPt;pts.add(currentPt);ptsGeo.add(currentPtGeo);foundGoodPt=true;currentPt.style=0;continue;}
- dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(lastGoodPt,currentPt);switch(lineType){case 22123000:if(dist>minSpikeDistance){lastGoodPt=currentPt;pts.add(currentPt);ptsGeo.add(currentPtGeo);foundGoodPt=true;}else{if(j===tg.Pixels.size()-1){pts.set(pts.size()-1,currentPt);ptsGeo.set(ptsGeo.size()-1,currentPtGeo);}}
- break;default:if(dist>minSpikeDistance||j===tg.Pixels.size()-1){lastGoodPt=currentPt;pts.add(currentPt);ptsGeo.add(currentPtGeo);foundGoodPt=true;}
- break;}}
- if(foundGoodPt===true){tg.Pixels=pts;tg.LatLongs=ptsGeo;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","FilterPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FilterPoints",exc));}else{throw exc;}}},PixelsToLatLong:function(pts,converter){var j=0;var pt=null;var ptGeo=null;var ptsGeo=new java.util.ArrayList();for(j=0;j<pts.size();j++)
- {pt=pts.get(j);ptGeo=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PointPixelsToLatLong(pt,converter);ptsGeo.add(ptGeo);}
- return ptsGeo;},isAutoshape:function(tg){try{var linetype=tg.get_LineType();switch(linetype){case 212600000:case 212500000:case 21100000:case 21200000:case 21300000:case 21400000:case 21500000:case 21600000:case 21800000:case 211000000:case 211100000:case 211200000:case 211210000:case 211400000:case 211600000:case 211700000:case 211800000:case 211900000:case 212000000:case 212100000:case 212210000:case 212230000:case 212220000:case 212210001:case 212230001:case 212220001:case 212300000:case 212300001:case 212400000:case 212410000:case 22139000:case 22221000:case 22222000:case 22222001:case 22223000:case 22225000:case 22224000:case 22224001:case 22310000:case 22422000:case 22524000:case 22533000:case 22534000:case 22611000:case 23157000:case 23163000:case 23171000:case 23172000:case 23174000:case 23173000:case 23191000:case 23194000:case 23192000:case 23193000:case 231100000:case 23211000:case 23212000:case 23213000:case 23221000:case 23222000:case 23223000:case 23224000:case 23225000:case 23226000:case 23227000:case 23340000:case 23410000:case 25211000:case 25212000:case 24250000:case 24211000:case 24260000:case 26400000:case 26420000:case 26410000:case 26440000:case 26430000:return true;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility._className,"isAutoshape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside isAutoshape",exc));}else{throw exc;}}
- return false;},LatLongToPixels:function(pts,converter){var j=0;var pt=null;var ptPixels=null;var ptsPixels=new java.util.ArrayList();for(j=0;j<pts.size();j++){pt=pts.get(j);ptPixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PointLatLongToPixels(pt,converter);ptsPixels.add(ptPixels);}
- return ptsPixels;},PointLatLongToPixels:function(ptLatLong,converter){var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.POINT2ToPoint2D(ptLatLong);var pt=converter.GeoToPixels(pt2d);pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PointToPOINT2(pt);pt2.style=ptLatLong.style;}catch(e){if(Clazz.instanceOf(e)){armyc2.c2sd.JavaTacticalRenderer.clsUtility.WriteFile("Error in clsUtility.PointLatLongToPixels");}else{throw e;}}
- return pt2;},FilterAXADPoints:function(tg,converter){try{var lineType=tg.get_LineType();switch(lineType){case 21700000:case 21710000:case 22320000:case 22521100:case 22521200:case 22521300:case 22521420:case 22521410:break;default:return;}
- var j=0;var pts=new java.util.ArrayList();var ptsGeo=new java.util.ArrayList();var pt0=tg.Pixels.get(0);var pt1=tg.Pixels.get(1);var pt=new armyc2.c2sd.graphics2d.Point(Math.floor(pt1.x),Math.floor(pt1.y));var pt1Geo2d=converter.PixelsToGeo(pt);var pt1geo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo2d.getX(),pt1Geo2d.getY());var ptj=null;var ptjGeo=null;var controlPt=tg.Pixels.get(tg.Pixels.size()-1);var pt0Relative=armyc2.c2sd.JavaLineArray.lineutility.PointRelativeToLine(pt0,pt1,pt0,controlPt);var relativeDist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0Relative,controlPt);relativeDist+=5;var pt0pt1dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);var foundGoodPoint=false;if(relativeDist>pt0pt1dist){pts.add(pt0);pt=new armyc2.c2sd.graphics2d.Point(Math.floor(pt0.x),Math.floor(pt0.y));pt1Geo2d=converter.PixelsToGeo(pt);pt1geo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo2d.getX(),pt1Geo2d.getY());ptsGeo.add(pt1geo);pt1=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0,pt1,relativeDist);pts.add(pt1);pt=new armyc2.c2sd.graphics2d.Point(Math.floor(pt1.x),Math.floor(pt1.y));pt1Geo2d=converter.PixelsToGeo(pt);pt1geo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo2d.getX(),pt1Geo2d.getY());ptsGeo.add(pt1geo);}else{foundGoodPoint=true;pts=tg.Pixels;ptsGeo=tg.LatLongs;}
- if(foundGoodPoint===false){for(j=2;j<tg.Pixels.size()-1;j++){ptj=tg.Pixels.get(j);ptjGeo=tg.LatLongs.get(j);if(foundGoodPoint){pts.add(ptj);ptsGeo.add(ptjGeo);}else{pt0pt1dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,ptj);if(relativeDist>pt0pt1dist)continue;else{pts.add(ptj);ptsGeo.add(ptjGeo);foundGoodPoint=true;}}}
- pts.add(controlPt);pt=new armyc2.c2sd.graphics2d.Point(Math.floor(controlPt.x),Math.floor(controlPt.y));pt1Geo2d=converter.PixelsToGeo(pt);pt1geo=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1Geo2d.getX(),pt1Geo2d.getY());ptsGeo.add(pt1geo);}
- var lastGoodPt=pts.get(1);var currentPt=null;var currentPtGeo=null;var dist=0;tg.Pixels=new java.util.ArrayList();tg.LatLongs=new java.util.ArrayList();for(j=0;j<2;j++){tg.Pixels.add(pts.get(j));tg.LatLongs.add(ptsGeo.get(j));}
- for(j=2;j<pts.size()-1;j++){currentPt=pts.get(j);currentPtGeo=ptsGeo.get(j);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(currentPt,lastGoodPt);if(dist>5){lastGoodPt=currentPt;tg.Pixels.add(currentPt);tg.LatLongs.add(currentPtGeo);}}
- tg.Pixels.add(pts.get(pts.size()-1));tg.LatLongs.add(ptsGeo.get(ptsGeo.size()-1));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","FilterAXADPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FilterAXADPoints",exc));}else{throw exc;}}
- return;},RemoveDuplicatePoints:function(tg){try{if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.isAutoshape(tg))return;switch(tg.get_LineType()){case 21700000:case 21710000:case 22320000:case 22521100:case 22521200:case 22521300:case 22521420:case 22521410:return;case 22121000:case 25221000:case 25222000:var strH=tg.get_H();if(strH!==null&&!strH.isEmpty()){var strs=strH.$plit(",");if(strs.length>1)return;}
- return;default:break;}
- var linetype=tg.get_LineType();if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(linetype,null))return;var ptCurrent=null;var ptLast=null;for(var j=1;j<tg.Pixels.size();j++){ptLast=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(j-1));ptCurrent=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(j));if(ptCurrent.x===ptLast.x&&ptCurrent.y===ptLast.y){if(tg.Pixels.size()>2){tg.Pixels.remove(j);tg.LatLongs.remove(j);}}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","FilterVerticalSegments",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FilterVerticalSegments",exc));}else{throw exc;}}
- return;},BestFitConverter:function(latLongs){var converter=null;try{var j=0;var pixelWidth=1000;var pixelHeight=1000;var geoTop=2.2250738585072014E-308;var geoBottom=1.7976931348623157E308;var geoLeft=1.7976931348623157E308;var geoRight=2.2250738585072014E-308;for(j=0;j<latLongs.size();j++){if(latLongs.get(j).y>geoTop)geoTop=latLongs.get(j).y;if(latLongs.get(j).y<geoBottom)geoBottom=latLongs.get(j).y;if(latLongs.get(j).x>geoRight)geoRight=latLongs.get(j).x;if(latLongs.get(j).x<geoLeft)geoLeft=latLongs.get(j).x;}
- converter=new armyc2.c2sd.renderer.utilities.PointConversion(pixelWidth,pixelHeight,geoTop,geoLeft,geoBottom,geoRight);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","BestFitConverter",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside BestFitConverter",exc));}else{throw exc;}}
- return converter;},PointPixelsToLatLong:function(ptPixels,converter){var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var pt=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.POINT2ToPoint(ptPixels);var pt2d=converter.PixelsToGeo(pt);pt2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.Point2DToPOINT2(pt2d);pt2.style=ptPixels.style;}
- catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","PointPixelsToLatLong",new armyc2.c2sd.renderer.utilities.RendererException("Could not convert point to geo",exc));}else{throw exc;}}
- return pt2;},ResolveDummyShapes:function(tg,shapes){try{var shapeStyle=-1;var shape=null;switch(tg.get_LineType()){case 2237000:var status=tg.get_Status();for(var j=0;j<shapes.size();j++){shape=shapes.get(j);shapeStyle=shape.get_Style();if(shapeStyle!==1){shape.setFillColor(tg.get_FillColor());shape.set_Fillstyle(tg.get_FillStyle());}else if(j===0&&status.equalsIgnoreCase("A")){shape.setFillColor(tg.get_FillColor());shape.set_Fillstyle(tg.get_FillStyle());}}
- break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsUtility","ResolveDummyShapes",new armyc2.c2sd.renderer.utilities.RendererException("ResolveDummyShapes",exc));}else{throw exc;}}
- return;},getMBR:function(clipBounds){var rect=null;try{var j=0;var pt=null;var xmax=clipBounds.get(0).getX();var xmin=xmax;var ymax=clipBounds.get(0).getY();var ymin=ymax;for(j=0;j<clipBounds.size();j++){pt=clipBounds.get(j);if(pt.getX()<xmin)xmin=pt.getX();if(pt.getX()>xmax)xmax=pt.getX();if(pt.getY()<=ymin)ymin=pt.getY();if(pt.getY()>ymax)ymax=pt.getY();}
- rect=new armyc2.c2sd.graphics2d.Rectangle2D(xmin,ymin,xmax-xmin,ymax-ymin);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility._className,"AddBoundaryPointsForLines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside AddBoundaryPointsForLines",exc));}else{throw exc;}}
- return rect;},_className:"clsUtility"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF={BuildDummyShapeSpec:function(){var shape=new armyc2.c2sd.renderer.utilities.ShapeInfo(null);try{var tx=new armyc2.c2sd.graphics2d.AffineTransform();tx.setToIdentity();var gp=new armyc2.c2sd.graphics2d.GeneralPath();shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.WHITE);shape.setFillColor(null);shape.setStroke(new armyc2.c2sd.graphics2d.BasicStroke());shape.setTexturePaint(null);gp.moveTo(-1000,-1000);gp.lineTo(-1001,-1001);shape.setShape(gp);shape.setAffineTransform(tx);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"BuidDummyShapeSpec",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside BuildDummyShapeSpec",exc));}
- else{throw exc;}}
- return shape;},isValidShapeSpec:function(shape){if(shape===null)
- return false;if(shape.getLineColor()===null&&shape.getFillColor()===null)
- return false;if(shape.getShape()===null)
- return false;if(shape.getStroke()===null)
- return false;if(shape.getAffineTransform()===null)
- return false;return true;},SetLCColor:function(tg,shape){try{var affiliation=tg.get_Affiliation();if(affiliation.equals("H")){if(shape.getLineColor()===armyc2.c2sd.renderer.utilities.Color.RED)
- shape.setLineColor(tg.get_LineColor());else
- shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);}else{if(shape.getLineColor()!==armyc2.c2sd.renderer.utilities.Color.RED)
- shape.setLineColor(tg.get_LineColor());else
- shape.setLineColor(armyc2.c2sd.renderer.utilities.Color.RED);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"SetLCColor",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetLCColor",exc));}else{throw exc;}}},ValidateShapeSpecs:function(originalShapes,clipRect){var shapes=null;try{var shape=null;if(originalShapes===null||originalShapes.length===0){shapes=new Array(0);}else{var j=0;var newShapes=new java.util.ArrayList();for(j=0;j<originalShapes.length;j++){shape=originalShapes[j];if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.isValidShapeSpec(shape)===true)
- newShapes.add(shape);}
- if(newShapes.size()>0){shapes=new Array(newShapes.size());shapes=newShapes.toArray(shapes);}else{shape=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.BuildDummyShapeSpec();shapes=new Array(1);shapes[0]=shape;}}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"ValidateShapeSpecs",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ValidateShapeSpecs",exc));}else{throw exc;}}
- return shapes;},PointLatLongToPixels:function(ptLatLong,converter){var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();try{var x=ptLatLong.x;var y=ptLatLong.y;var pt2dGeo=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(x,y);var ptPixels=converter.GeoToPixels(pt2dGeo);pt.x=ptPixels.getX();pt.y=ptPixels.getY();pt.style=ptLatLong.style;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"PointLatLongToPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside PointLatLongToPixels",exc));}else{throw exc;}}
- return pt;},GetNumericFields:function(tg,lineType,radius,width,length,attitude){try{if(lineType===243111001)
- return;var dist=0;var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();var pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(0,0);radius.value=Clazz.newArray(1,0);width.value=Clazz.newArray(1,0);attitude.value=Clazz.newArray(1,0);length.value=Clazz.newArray(1,0);switch(lineType){case 15000002:case 24312000:case 24321300:case 24323300:case 24324300:case 24325300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24322300:case 24353000:case 24363000:radius.value[0]=Double.parseDouble(tg.get_T1());break;case 24311000:length.value[0]=Double.parseDouble(tg.get_T1());width.value[0]=Double.parseDouble(tg.get_H());attitude.value[0]=Double.parseDouble(tg.get_H2())*(0.05625);var std=armyc2.c2sd.renderer.utilities.RendererSettings.getInstance().getSymbologyStandard();if(std===armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525C)
- attitude.value[0]=Double.parseDouble(tg.get_H2());break;case 24326101:case 24321200:case 24323200:case 24322200:case 24324200:case 24325200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24352000:case 24362000:if(tg.LatLongs.size()>=2){if(tg.LatLongs.size()>=2){pt0=tg.LatLongs.get(0);pt1=tg.LatLongs.get(1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(pt0,pt1,a12,a21);attitude.value[0]=a12.value[0];}}
- width.value[0]=Double.parseDouble(tg.get_T1());break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetNumericFields",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetNumericFields",exc));}else{throw exc;}}},TransformPixels:function(tg,clipBounds){try{var top=clipBounds.getMaxY();var bottom=clipBounds.getMinY();var xfm=null;var pt2d=null;var j=0;var pt2=null;for(j=0;j<tg.Pixels.size();j++){xfm=armyc2.c2sd.graphics2d.AffineTransform.getScaleInstance(1.0,-1.0);pt2=tg.Pixels.get(j);pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);xfm.translate(0,-top-bottom);xfm.transform(pt2d,pt2d);pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d.getX(),pt2d.getY());tg.Pixels.set(j,pt2);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"TransformPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside TransformPixels",exc));}else{throw exc;}}},GetFarPixels:function(tg,converter,farLeftPixels,farRightPixels){try{if(farLeftPixels===null||farRightPixels===null)
- return;var pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(50,30);var ptPixels50=converter.GeoToPixels(pt2d);pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(60,30);var ptPixels60=converter.GeoToPixels(pt2d);var degLonPerPixel=10/Math.abs(ptPixels60.getX()-ptPixels50.getX());var j=0;var minX=1.7976931348623157E308;var maxX=-1.7976931348623157E308;for(j=0;j<tg.Pixels.size();j++){if(tg.Pixels.get(j).x<minX)
- minX=tg.Pixels.get(j).x;if(tg.Pixels.get(j).x>maxX)
- maxX=tg.Pixels.get(j).x;}
- var degWidth=(maxX-minX)*degLonPerPixel;if(Math.abs(degWidth)<180)
- return;var midX=Math.abs(180/degLonPerPixel);var x=0;var y=0;for(j=0;j<tg.Pixels.size();j++){x=tg.Pixels.get(j).x;y=tg.Pixels.get(j).y;if(x>midX){x-=2*midX;}
- farLeftPixels.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y));}
- for(j=0;j<tg.Pixels.size();j++){x=tg.Pixels.get(j).x;y=tg.Pixels.get(j).y;if(x<midX){x+=2*midX;}
- farRightPixels.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y));}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetFarPixels",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetFarPixels",exc));}else{throw exc;}}
- return;},Change1TacticalAreas:function(tg,lineType,converter,shapes){try{var width=new armyc2.c2sd.JavaLineArray.ref();var length=new armyc2.c2sd.JavaLineArray.ref();var attitude=new armyc2.c2sd.JavaLineArray.ref();var radius=new armyc2.c2sd.JavaLineArray.ref();var j=0;var pt0=tg.LatLongs.get(0);var pt1=null;var ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt00=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();if(tg.LatLongs.size()>1){pt1=tg.LatLongs.get(1);}else{pt1=tg.LatLongs.get(0);}
- var pPoints=null;var ptCenter=this.PointLatLongToPixels(pt0,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetNumericFields(tg,lineType,radius,width,length,attitude);switch(lineType){case 24326101:case 24321200:case 24323200:case 24322200:case 24324200:case 24325200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24352000:case 24362000:pt00=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,width.value[0]/2,attitude.value[0]-90);pt00=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(pt00,converter);pt00.style=0;tg.Pixels.add(pt00);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,width.value[0]/2,attitude.value[0]+90);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);ptTemp.style=0;tg.Pixels.add(ptTemp);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt1,width.value[0]/2,attitude.value[0]+90);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);ptTemp.style=0;tg.Pixels.add(ptTemp);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt1,width.value[0]/2,attitude.value[0]-90);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);ptTemp.style=0;tg.Pixels.add(ptTemp);tg.Pixels.add(pt00);break;case 24311000:ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,length.value[0]/2,attitude.value[0]-90);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptTemp,width.value[0]/2,attitude.value[0]+0);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);tg.Pixels.add(ptTemp);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,length.value[0]/2,attitude.value[0]+90);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptTemp,width.value[0]/2,attitude.value[0]+0);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);tg.Pixels.add(ptTemp);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,length.value[0]/2,attitude.value[0]+90);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptTemp,width.value[0]/2,attitude.value[0]+180);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);tg.Pixels.add(ptTemp);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,length.value[0]/2,attitude.value[0]-90);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptTemp,width.value[0]/2,attitude.value[0]+180);ptTemp=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(ptTemp,converter);tg.Pixels.add(ptTemp);tg.Pixels.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(0).x,tg.Pixels.get(0).y));break;case 24312000:case 15000002:case 24321300:case 24322300:case 24323300:case 24324300:case 24325300:case 24326200:case 24331300:case 24332300:case 24333300:case 24334300:case 24335300:case 24336300:case 24337300:case 24338300:case 24339300:case 24353000:case 24363000:pt0=tg.LatLongs.get(0);ptTemp=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,radius.value[0],90);pPoints=new Array(3);pPoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt0);pPoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptTemp);pPoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(ptTemp);var pPoints2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetGeodesicArc(pPoints);var ptTemp2=null;for(j=0;j<pPoints2.size();j++){pt0=pPoints2.get(j);ptTemp2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptTemp2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(pt0,converter);tg.Pixels.add(ptTemp2);}
- break;case 243111000:armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetConcentricCircles(tg,lineType,converter);if(tg.LatLongs.size()>1)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.RangeFanOrientation(tg,lineType,converter);break;case 243112000:armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetSectorRangeFan(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.RangeFanOrientation(tg,lineType,converter);break;case 243111001:armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetSectorRangeFan(tg,converter);break;default:return false;}
- var farLeftPixels=new java.util.ArrayList();var farRightPixels=new java.util.ArrayList();armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetFarPixels(tg,converter,farLeftPixels,farRightPixels);var shapesLeft=new java.util.ArrayList();var shapesRight=new java.util.ArrayList();if(farLeftPixels.isEmpty()||farRightPixels.isEmpty()){var tempPixels=new java.util.ArrayList();tempPixels.addAll(tg.Pixels);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.postSegmentFSA(tg,converter);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Change1PixelsToShapes(tg,shapes);tg.Pixels=tempPixels;}else{tg.Pixels=farLeftPixels;armyc2.c2sd.JavaTacticalRenderer.Modifier2.AddModifiers2(tg);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Change1PixelsToShapes(tg,shapesLeft);tg.Pixels=farRightPixels;armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.Change1PixelsToShapes(tg,shapesRight);shapes.addAll(shapesLeft);shapes.addAll(shapesRight);}
- if(lineType===15000002)
- {var shape=new armyc2.c2sd.JavaLineArray.Shape2(0);shape.moveTo(ptCenter);ptCenter.y+=1;shape.lineTo(ptCenter);shapes.add(shape);}
- return true;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"Change1TacticalAreas",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside Change1TacticalAreas",exc));}else{throw exc;}}
- return false;},Change1PixelsToShapes:function(tg,shapes){var shape=null;var beginLine=true;var currentPt=null;var lastPt=null;var k=0;var linetype=tg.get_LineType();for(k=0;k<tg.Pixels.size();k++){if(shape===null)
- shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);currentPt=tg.Pixels.get(k);if(k>0)
- lastPt=tg.Pixels.get(k-1);if(beginLine){if(k===0)
- shape.set_Style(currentPt.style);if(k>0)
- if(currentPt.style===5&&lastPt.style===5)
- shape.lineTo(currentPt);shape.moveTo(currentPt);beginLine=false;}else{shape.lineTo(currentPt);if(currentPt.style===5||currentPt.style===10){beginLine=true;if(linetype===243111001&&k<tg.Pixels.size()-1){shapes.add(shape);shape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);}}}
- if(k===tg.Pixels.size()-1){shapes.add(shape);}}},GetConcentricCircles:function(tg,lineType,converter){try{var j=0;var l=0;var radius=0;var pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pts=new java.util.ArrayList();var radii=null;var H2=tg.get_H2();if(tg.LatLongs.size()===1&&H2!==null){var strs=H2.$plit(",");radii=Clazz.newArray(strs.length,0);for(j=0;j<strs.length;j++)
- {radii[j]=strs[j];}}
- if(radii===null){radii=armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetRadii(tg,lineType);}
- var n=radii.length;var pPoints=null;for(l=0;l<n;l++){radius=radii[l];if(radius===0){continue;}
- pPoints=new Array(3);pt=tg.LatLongs.get(0);pPoints[0]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pt=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt,radius,90);pPoints[1]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pPoints[2]=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt);pts=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetGeodesicArc(pPoints);var ptTemp2=null;for(j=0;j<pts.size();j++){ptTemp2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();ptTemp2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(pts.get(j),converter);ptTemp2.style=0;if(j===pts.size()-1)
- ptTemp2.style=5;tg.Pixels.add(ptTemp2);}}
- var length=tg.Pixels.size();tg.Pixels.get(length-1).style=5;pPoints=null;pt=null;return;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetConcentricCircles",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetConcentricCircles",exc));}else{throw exc;}}},GetMaxSector:function(tg){var strLeftRightMinMax=null;try{var max=0;var maxx=-1.7976931348623157E308;var H2=tg.get_H2();var leftRightMinMax=H2.$plit(",");var numSectors=Math.floor(leftRightMinMax.length/4);var k=0;var maxIndex=-1;if(numSectors<1){return null;}
- if(numSectors*4!==leftRightMinMax.length){return null;}
- try{for(k=0;k<numSectors;k++){max=Double.parseDouble(leftRightMinMax[4*k+3]);if(max>maxx){maxx=max;maxIndex=k;}}}catch(e){if(Clazz.instanceOf(e,NumberFormatException)){return null;}else{throw e;}}
- var strLeft=leftRightMinMax[4*maxIndex];var strRight=leftRightMinMax[4*maxIndex+1];var strMin=leftRightMinMax[4*maxIndex+2];var strMax=leftRightMinMax[4*maxIndex+3];strLeftRightMinMax=strLeft+","+strRight+","+strMin+","+strMax;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetMaxSector",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetMaxSector",exc));}else{throw exc;}}
- return strLeftRightMinMax;},GetCircularRangeFanFillTG:function(tg){var tg1=null;try{tg1=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg1.set_VisibleModifiers(true);tg1.set_LineThickness(0);tg1.set_FillColor(tg.get_FillColor());tg1.set_Fillstyle(tg.get_FillStyle());tg1.LatLongs=new java.util.ArrayList();tg1.Pixels=new java.util.ArrayList();tg1.LatLongs.add(tg.LatLongs.get(0));tg1.Pixels.add(tg.Pixels.get(0));tg1.Pixels.add(tg.Pixels.get(1));tg1.set_LineType(243111001);var strH2=tg.get_H2();if(tg.get_LineType()!==243111000){tg1.set_H2(strH2);return tg1;}
- var H2=strH2.$plit(",");var leftRightMinMax="";var j=0;for(j=0;j<H2.length-1;j++){if(j>0)
- leftRightMinMax+=",";leftRightMinMax+="0,0,"+H2[j]+","+H2[j+1];}
- tg1.set_H2(leftRightMinMax);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetCircularRangeFanFillTG",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetCircularRangeFanFillTG",exc));}else{throw exc;}}
- return tg1;},addCircularRangeFanFillShapesFromTG:function(tgShapes,fillShapes){try{tgShapes.addAll(0,fillShapes);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"addCircularRangeFanFillShapesFromTG",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside addCircularRangeFanFillShapesFromTG",exc));}else{throw exc;}}},GetSectorRangeFan:function(tg,converter){var circle=false;try{var ptCenter=tg.LatLongs.get(0);var k=0;var l=0;var numSectors=0;armyc2.c2sd.JavaTacticalRenderer.clsUtility.GetSectorRadiiFromPoints(tg);var pPoints=new java.util.ArrayList();var pPointsInnerArc=new java.util.ArrayList();var pPointsOuterArc=new java.util.ArrayList();var sectorPoints=new java.util.ArrayList();var allPoints=new java.util.ArrayList();var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt2=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var H2=tg.get_H2();var leftRightMinMax=H2.$plit(",");var left=0;var right=0;var min=0;var max=0;numSectors=Math.floor(leftRightMinMax.length/4);if(numSectors<1){return false;}
- if(numSectors*4!==leftRightMinMax.length){return false;}
- try{for(k=0;k<numSectors;k++){left=Double.parseDouble(leftRightMinMax[4*k]);right=Double.parseDouble(leftRightMinMax[4*k+1]);min=Double.parseDouble(leftRightMinMax[4*k+2]);max=Double.parseDouble(leftRightMinMax[4*k+3]);}}catch(e){if(Clazz.instanceOf(e,NumberFormatException)){return false;}else{throw e;}}
- for(k=0;k<numSectors;k++){sectorPoints.clear();pPointsOuterArc.clear();pPointsInnerArc.clear();left=Double.parseDouble(leftRightMinMax[4*k]);right=Double.parseDouble(leftRightMinMax[4*k+1]);min=Double.parseDouble(leftRightMinMax[4*k+2]);max=Double.parseDouble(leftRightMinMax[4*k+3]);pt1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,min,left);pt2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,min,right);pPoints.clear();pPoints.add(ptCenter);pPoints.add(pt1);pPoints.add(pt2);circle=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetGeodesicArc2(pPoints,pPointsInnerArc);pPoints.clear();circle=false;pt1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,max,left);pt2=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptCenter,max,right);pPoints.add(ptCenter);pPoints.add(pt1);pPoints.add(pt2);circle=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetGeodesicArc2(pPoints,pPointsOuterArc);for(l=0;l<pPointsInnerArc.size();l++){pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPointsInnerArc.get(l));sectorPoints.add(pt1);}
- for(l=pPointsOuterArc.size()-1;l>=0;l--){pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPointsOuterArc.get(l));sectorPoints.add(pt1);}
- pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pPointsInnerArc.get(0));pt1.style=5;sectorPoints.add(pt1);for(l=0;l<sectorPoints.size();l++)
- allPoints.add(sectorPoints.get(l));}
- pPointsInnerArc=null;pPointsOuterArc=null;ptCenter=null;var ptTemp=null;for(l=0;l<allPoints.size();l++){pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();pt1=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(allPoints.get(l),converter);if(ptTemp!==null&&pt1.x===ptTemp.x&&pt1.y===ptTemp.y)
- continue;tg.Pixels.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1));ptTemp=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt1);}
- return true;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"GetSectorRangeFan",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside GetSectorRangeFan",exc));}else{throw exc;}}
- return circle;},RangeFanOrientation:function(tg,lineType,converter){try{var pt0=tg.LatLongs.get(0);var dist=0;var orientation=0;var radius=0;var j=0;var pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var a12=new armyc2.c2sd.JavaLineArray.ref();var a21=new armyc2.c2sd.JavaLineArray.ref();if(tg.LatLongs.size()>1){pt1=tg.LatLongs.get(1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(pt0,pt1,a12,a21);orientation=a12.value[0];}else{var strLeftRightMinMax=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.GetMaxSector(tg);var sector=strLeftRightMinMax.$plit(",");var left=Double.parseDouble(sector[0]);var right=Double.parseDouble(sector[1]);var min=Double.parseDouble(sector[2]);var max=Double.parseDouble(sector[3]);while(left>360)
- left-=360;while(right>360)
- right-=360;while(left<0)
- left+=360;while(right<0)
- right+=360;if(left>right)
- orientation=(left-360+right)/2;else
- orientation=(left+right)/2;dist=max;}
- radius=dist*1.1;var pt0F=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var pt1F=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptBaseF=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptLeftF=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptRightF=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();var ptTipF=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2();pt0=tg.LatLongs.get(0);pt0F=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(pt0,converter);pt1=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,radius,orientation);pt1F=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.PointLatLongToPixels(pt1,converter);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0F,pt1F);ptBaseF=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0F,pt1F,dist+10);ptTipF=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble(pt0F,pt1F,dist+20);ptLeftF=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0F,ptBaseF,ptBaseF,0,10);ptRightF=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0F,ptBaseF,ptBaseF,1,10);tg.Pixels.add(pt0F);ptTipF.style=5;tg.Pixels.add(ptTipF);tg.Pixels.add(ptLeftF);ptTipF.style=0;tg.Pixels.add(ptTipF);tg.Pixels.add(ptRightF);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"RangeFanOrientation",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside RangeFanOrientation",exc));}else{throw exc;}}},ClearPixelsStyle:function(tg){try{switch(tg.get_LineType()){case 15000001:case 15000000:case 15000003:case 22224000:case 22222000:case 22224001:case 22222001:case 22225000:case 22221000:case 22223000:return;default:break;}
- for(var j=0;j<tg.Pixels.size();j++)
- tg.Pixels.get(j).style=0;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"ClearPixelsStyle",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside ClearPixelsStyle",exc));}else{throw exc;}}
- return;},FilterPoints2:function(tg,converter){try{var lineType=tg.get_LineType();var minSpikeDistance=0;var segmented=true;if(tg.Pixels.size()<3)
- return;switch(lineType){case 22124000:case 22525000:case 22125000:case 22523000:case 22526000:case 22527000:case 22528000:case 22612000:case 22612001:case 22613000:case 22623000:case 22623001:case 24230000:minSpikeDistance=5;segmented=false;break;case 23131100:case 23131200:case 23132000:case 22122000:case 22134000:case 23330000:case 23350000:minSpikeDistance=25;break;case 22123000:case 23115000:case 23114000:case 22624000:case 23111000:case 23111001:case 23113000:case 23112000:case 23134000:case 231111000:case 231112000:case 231113000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:minSpikeDistance=35;break;case 32156000:case 32164000:case 32162000:minSpikeDistance=35;break;default:return;}
- var dist=0;var pts=new java.util.ArrayList();var j=0;var pt=null;var pt0=null;var pt1=null;for(j=0;j<tg.Pixels.size();j++){pt=tg.Pixels.get(j);pt.style=tg.Pixels.get(j).style;pts.add(pt);}
- var removedPt=true;outer:while(removedPt===true){removedPt=false;for(j=0;j<pts.size()-1;j++){pt0=pts.get(j);pt1=pts.get(j+1);dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pts.get(j),pts.get(j+1));if(dist<minSpikeDistance){if(segmented===false){if(j+1===pts.size()-1)
- pts.remove(j);else
- pts.remove(j+1);removedPt=true;break outer;}else if(pt0.style===0&&pt1.style===-1){pts.remove(j+1);removedPt=true;break outer;}else if(pt0.style===0&&pt1.style===-2){pts.remove(j+1);removedPt=true;break outer;}else if(pt0.style===-1&&pt1.style===0){pts.remove(j);removedPt=true;break outer;}else if(pt0.style===-1&&pt1.style===-1){pts.remove(j+1);removedPt=true;break outer;}else if(pt0.style===-1&&pt1.style===-2){pts.remove(j+1);removedPt=true;break outer;}else if(pt0.style===-2&&pt1.style===0){pts.remove(j);removedPt=true;break outer;}else if(pt0.style===-2&&pt1.style===-1){pts.remove(j);removedPt=true;break outer;}else if(pt0.style===-2&&pt1.style===-2){pts.remove(j+1);removedPt=true;break outer;}}}}
- tg.Pixels=pts;tg.LatLongs=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.PixelsToLatLong(pts,converter);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"FilterPoints2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside FilterPoints2",exc));}else{throw exc;}}},canClipPoints:function(tg){try{var symbolId=tg.get_SymbolId();if(armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(symbolId)>0)
- return true;var linetype=tg.get_LineType();switch(linetype){case 2237000:case 23120000:case 22612000:case 22623000:case 22121000:case 22122000:case 22123000:case 22124000:case 22125000:case 22131000:case 11000000:case 10000000:case 22132000:case 22133000:case 22432000:case 22134000:case 22135000:case 22136000:case 22137000:case 22138000:case 221310000:case 22231000:case 22232000:case 22233000:case 22234000:case 22234100:case 22234200:case 22235000:case 22330000:case 221311000:case 22340000:case 22350000:case 22421000:case 22431000:case 22431100:case 22522100:case 22522210:case 22522220:case 22523000:case 22525000:case 22526000:case 22527000:case 22528000:case 22531000:case 22532000:case 22535000:case 22536000:case 22613000:case 22621000:case 22622000:case 22624000:case 22625000:case 22626000:case 23111000:case 23111001:case 23112000:case 23113000:case 23115000:case 23114000:case 23131100:case 23131200:case 23132000:case 23134000:case 23162000:case 23164000:case 23180000:case 231111000:case 231112000:case 231113000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:case 23330000:case 23350000:case 23440000:case 23450000:case 23460000:case 23490000:case 24250000:case 24211000:case 24260000:case 24210000:case 24220000:case 23200000:case 23200001:case 24230000:case 24225000:case 24240000:case 24330000:case 24313000:case 24314000:case 24315000:case 24321100:case 24322100:case 24323100:case 24324100:case 24325100:case 243100000:case 24331100:case 24332100:case 24336100:case 24333100:case 24334100:case 24335100:case 24337100:case 24338100:case 24339100:case 24351000:case 24361000:case 25221000:case 25222000:case 25223000:case 25225000:case 25224000:case 25310000:case 25320000:case 25330000:case 25340000:case 25351000:case 25352000:case 25353000:case 24226000:return true;default:return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"canClipPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside canClipPoints",exc));}else{throw exc;}}
- return false;},LinesWithSeparateFill:function(linetype,shapes){if(shapes===null)
- return false;switch(linetype){case 23410000:case 22612000:case 22623000:return true;case 23114000:case 23115000:case 23350000:case 23113000:case 22134000:case 22624000:case 23111001:case 23111000:case 22340000:case 22350000:case 211100000:case 22121000:case 22122000:case 22123000:case 22124000:case 22125000:case 22330000:case 22522100:case 22522210:case 22522220:case 22523000:case 22525000:case 22526000:case 22527000:case 22528000:case 22613000:case 23112000:case 23120000:case 23131100:case 23131200:case 23132000:case 23134000:case 23172000:case 231111000:case 231112000:case 231113000:case 231114000:case 231115000:case 231116000:case 231117100:case 231117200:case 231117300:case 23330000:case 24250000:case 24211000:case 24210000:case 24220000:case 24230000:case 24225000:case 24240000:case 25221000:case 25222000:case 25223000:case 25225000:case 25224000:case 22222000:case 22222001:case 22224000:case 22224001:case 22221000:case 22223000:case 22225000:var shape=null;if(shapes!==null&&shapes.size()>0){for(var j=0;j<shapes.size();j++){shape=shapes.get(j);if(shape.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE)
- shapes.get(j).setFillColor(null);}}
- return true;default:return false;}},Point2DtoPOINT2Mapped:function(pts2d,hashMap){var pts=new java.util.ArrayList();try{var pt2d;var style=0;for(var j=0;j<pts2d.size();j++)
- {pt2d=pts2d.get(j);if(hashMap.containsValue(pt2d))
- style=0;else
- style=-1;pts.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2d.get(j).getX(),pts2d.get(j).getY(),style));}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"Point2DToPOINT2Mapped",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside Point2DToPOINT2Mapped",exc));}else{throw exc;}}
- return pts;},Point2DtoPOINT2:function(pts2d){var pts=new java.util.ArrayList();try{for(var j=0;j<pts2d.size();j++)
- pts.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2d.get(j).getX(),pts2d.get(j).getY()));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"Point2DToPOINT2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside Point2DToPOINT2",exc));}else{throw exc;}}
- return pts;},POINT2toPoint2D:function(pts){var pts2d=new java.util.ArrayList();try{for(var j=0;j<pts.size();j++)
- pts2d.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pts.get(j).x,pts.get(j).y));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"POINT2toPoint2D",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside POINT2toPoint2D",exc));}else{throw exc;}}
- return pts2d;},BuildShapeFromPoints:function(pts2d){var shape=new armyc2.c2sd.graphics2d.GeneralPath();try{shape.moveTo(pts2d.get(0).getX(),pts2d.get(0).getY());for(var j=1;j<pts2d.size();j++){shape.lineTo(pts2d.get(j).getX(),pts2d.get(j).getY());}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"buildShapeFromPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside buildShapeFromPoints",exc));}else{throw exc;}}
- return shape;},buildShapeSpecFromPoints:function(shapeSpec,pts,clipArea){var shapeSpecs2=null;var shapeSpec2;try{shapeSpecs2=new java.util.ArrayList();var j=0;var h=shapeSpec.getBounds().height;var w=shapeSpec.getBounds().width;var x=shapeSpec.getBounds().x;var y=shapeSpec.getBounds().y;if(h===0&&w===0)
- return shapeSpecs2;if(h===0)
- h=1;if(w===0)
- w=1;var clipBounds=null;var clipPoints=null;if(clipArea!==null&&clipArea instanceof armyc2.c2sd.graphics2d.Rectangle2D)
- clipBounds=clipArea;else if(clipArea!==null&&clipArea instanceof armyc2.c2sd.graphics2d.Rectangle)
- clipBounds=clipArea;else if(clipArea!==null&&clipArea instanceof java.util.ArrayList)
- clipPoints=clipArea;if(clipBounds!==null&&clipBounds.containsRect(shapeSpec.getShape().getBounds2D())===false&&clipBounds.intersectsRect(shapeSpec.getShape().getBounds2D())===false){if(clipBounds.containsRect2(x,y,w,h)===false&&clipBounds.intersectsRect2(x,y,w,h)===false)
- return shapeSpecs2;}else if(clipPoints!==null){var poly=new armyc2.c2sd.graphics2d.GeneralPath();for(j=0;j<clipPoints.size();j++){if(j===0)
- poly.moveTo(clipPoints.get(j).getX(),clipPoints.get(j).getY());else
- poly.lineTo(clipPoints.get(j).getX(),clipPoints.get(j).getY());}
- poly.closePath();if(poly.containsRect(shapeSpec.getShape().getBounds2D())===false&&poly.intersectsRect(shapeSpec.getShape().getBounds2D())===false){if(poly.containsRect2(x,y,w,h)===false&&poly.intersectsRect2(x,y,w,h)===false)
- return shapeSpecs2;}}
- if(shapeSpec.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER||shapeSpec.getShapeType()===armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_MODIFIER_FILL){shapeSpecs2.add(shapeSpec);return shapeSpecs2;}
- var tg=new armyc2.c2sd.JavaTacticalRenderer.TGLight();var pt=null;tg.set_LineType(22124000);var pts2=new java.util.ArrayList();var pts2d=null;var shape=null;var gp=new armyc2.c2sd.graphics2d.GeneralPath();for(j=0;j<pts.size();j++){pt=pts.get(j);switch(pt.style){case 0:if(pts2.size()>1)
- {tg=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg.set_LineType(22124000);tg.Pixels=pts2;if(clipBounds!==null)
- {pts2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg,clipBounds);}
- else if(clipPoints!==null&&!clipPoints.isEmpty())
- pts2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg,clipPoints);if(pts2d!==null&&pts2d.size()>1)
- {shape=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.BuildShapeFromPoints(pts2d);gp.append(shape,false);}
- pts2.clear();pts2.add(pt);}
- else
- pts2.add(pt);break;case 1:pts2.add(pt);break;default:pts2.add(pt);break;}}
- if(pts2.size()>1){tg=new armyc2.c2sd.JavaTacticalRenderer.TGLight();tg.set_LineType(22124000);tg.Pixels=pts2;if(clipBounds!==null)
- pts2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipPolygon2.ClipPolygon(tg,clipBounds);else if(clipPoints!==null)
- pts2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsClipQuad.ClipPolygon(tg,clipPoints);if(pts2d!==null&&pts2d.size()>1)
- {shape=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.BuildShapeFromPoints(pts2d);gp.append(shape,false);}}
- shapeSpec2=new armyc2.c2sd.JavaLineArray.Shape2(shapeSpec.getShapeType());shapeSpec2.setLineColor(shapeSpec.getLineColor());shapeSpec2.setFillColor(shapeSpec.getFillColor());shapeSpec2.setStroke(shapeSpec.getStroke());shapeSpec2.setTexturePaint(shapeSpec.getTexturePaint());shapeSpec2.setShape(gp);shapeSpecs2.add(shapeSpec2);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"buildShapeSpecFromPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside buildShapeSpecFromPoints",exc));}else{throw exc;}}
- return shapeSpecs2;},postClipShapes:function(tg,shapeSpecsArray,clipArea){var shapeSpecs2=null;var tempShapes=null;try{if(shapeSpecsArray===null||shapeSpecsArray.size()===0)
- return null;shapeSpecs2=new java.util.ArrayList();var j=0;var shapeSpecs=new java.util.ArrayList();for(j=0;j<shapeSpecsArray.size();j++)
- shapeSpecs.add(shapeSpecsArray.get(j));var pts=new java.util.ArrayList();var shape=null;var pt;var coords=Clazz.newArray(6,0);var shapeSpec=null;for(j=0;j<shapeSpecs.size();j++){shapeSpec=shapeSpecs.get(j);shape=shapeSpec.getShape();pts.clear();for(var i=shape.getPathIterator(null);!i.isDone();i.next())
- {var type=i.currentSegment(coords);switch(type){case 0:pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[0],coords[1]);pt.style=0;pts.add(pt);break;case 1:pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[0],coords[1]);pt.style=1;pts.add(pt);break;case 2:pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[0],coords[1]);pt.style=2;pts.add(pt);pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[2],coords[3]);pt.style=2;pts.add(pt);break;case 3:pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[0],coords[1]);pt.style=3;pts.add(pt);pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[2],coords[3]);pt.style=3;pts.add(pt);pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[4],coords[5]);pt.style=3;pts.add(pt);break;case 4:pt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(coords[0],coords[1]);pt.style=4;pts.add(pt);break;default:pt=null;break;}}
- tempShapes=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.buildShapeSpecFromPoints(shapeSpec,pts,clipArea);shapeSpecs2.addAll(tempShapes);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"postClipShapes",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside postClipShapes",exc));}else{throw exc;}}
- return shapeSpecs2;},segmentAnticipatedLine:function(tg){try{var linetype=tg.get_LineType();if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(linetype,null))
- return false;if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.isAutoshape(tg))
- return false;if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isBasicShape(linetype))
- return false;switch(linetype){case 23200000:case 23200001:case 22421000:case 21700000:case 21710000:case 22320000:case 22521100:case 22521410:case 22521420:case 22521200:case 22521300:return false;case 25225000:case 25223000:case 25224000:return false;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"segmentGenericLine",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside segmentGenericLine",exc));}else{throw exc;}}
- return true;},postSegmentFSA:function(tg,converter){try{if(tg.get_Client().equals("2D"))
- return;var linetype=tg.get_LineType();switch(linetype){case 24326101:case 24321200:case 24323200:case 24322200:case 24324200:case 24325200:case 24331200:case 24332200:case 24333200:case 24334200:case 24335200:case 24336200:case 24337200:case 24338200:case 24339200:case 24352000:case 24362000:break;default:return;}
- var latLongs=new java.util.ArrayList();var resultPts=new java.util.ArrayList();var j=0;var k=0;var n=0;var pt0=null;var pt1=null;var pt=null;var dist=0;var interval=1000000;var az=0;var maxDist=0;var pt2d=null;for(j=0;j<tg.Pixels.size();j++){pt0=tg.Pixels.get(j);pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt0.x,pt0.y);pt2d=converter.PixelsToGeo(pt2d);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d.getX(),pt2d.getY());latLongs.add(pt0);}
- for(j=0;j<latLongs.size()-1;j++){pt0=latLongs.get(j);pt1=latLongs.get(j+1);pt1.style=-1;az=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(pt0,pt1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(latLongs.get(j),latLongs.get(j+1),null,null);if(dist>maxDist){maxDist=dist;}}
- if(interval>maxDist)
- interval=maxDist;for(j=0;j<latLongs.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(latLongs.get(j));pt0.style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(latLongs.get(j+1));pt1.style=0;az=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(pt0,pt1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(latLongs.get(j),latLongs.get(j+1),null,null);n=Math.floor((dist/interval));if(j===0)
- resultPts.add(pt0);for(k=1;k<=n;k++){pt=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,interval*k,az);pt.style=-2;dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(pt,pt1,null,null);if(dist>=interval/2)
- resultPts.add(pt);}
- resultPts.add(pt1);}
- latLongs=resultPts;tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.LatLongToPixels(latLongs,converter);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"postSegmentFSA",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside postSegmentFSA",exc));}else{throw exc;}}},SegmentGeoPoints:function(tg,converter){try{if(tg.get_Client().equals("2D"))
- return;var resultPts=new java.util.ArrayList();var lineType=tg.get_LineType();var interval=1000000;switch(lineType){case 22528000:case 24220000:case 231111000:case 22350000:case 231117300:case 231117200:case 231117100:case 23131100:case 23131200:case 23132000:case 23134000:case 23112000:case 23111000:case 23111001:case 22522100:case 23350000:case 22624000:case 22122000:case 23113000:case 23115000:case 23114000:case 22134000:case 23330000:break;case 231116000:case 231115000:case 231114000:case 231113000:case 231112000:interval=500000;break;case 22123000:interval=2000000;break;default:if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF.segmentAnticipatedLine(tg))
- {break;}
- return;}
- var j=0;var k=0;var n=0;var pt0=null;var pt1=null;var pt=null;var dist=0;var az=0;var maxDist=0;for(j=0;j<tg.LatLongs.size()-1;j++){pt0=tg.LatLongs.get(j);pt1=tg.LatLongs.get(j+1);pt1.style=-1;az=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(pt0,pt1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(tg.LatLongs.get(j),tg.LatLongs.get(j+1),null,null);if(dist>maxDist){maxDist=dist;}}
- if(interval>maxDist)
- interval=maxDist;for(j=0;j<tg.LatLongs.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.LatLongs.get(j));pt0.style=0;pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.LatLongs.get(j+1));pt1.style=0;az=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.GetAzimuth(pt0,pt1);dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(tg.LatLongs.get(j),tg.LatLongs.get(j+1),null,null);n=Math.floor((dist/interval));if(j===0)
- resultPts.add(pt0);for(k=1;k<=n;k++){pt=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(pt0,interval*k,az);pt.style=-2;dist=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_distance(pt,pt1,null,null);if(dist>=interval/2)
- resultPts.add(pt);}
- resultPts.add(pt1);}
- tg.LatLongs=resultPts;tg.Pixels=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.LatLongToPixels(tg.LatLongs,converter);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityCPOF._className,"SegmentGeoPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SegmentGeoPoints",exc));}else{throw exc;}}
- return;},_className:"clsUtilityCPOF"};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.JavaRendererServer=armyc2.c2sd.JavaRendererServer||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints=armyc2.c2sd.JavaRendererServer.RenderMultipoints||{};armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE={setSplineLinetype:function(tg){switch(tg.get_LineType()){case 22623000:tg.set_LineType(22623001);break;case 22612000:tg.set_LineType(22612001);break;case 32164000:tg.set_LineType(32164001);break;case 32163000:tg.set_LineType(32163001);break;case 32156000:tg.set_LineType(32156001);break;case 32162000:tg.set_LineType(32162001);break;case 32610000:tg.set_LineType(32610001);break;case 31430000:tg.set_LineType(31430001);break;case 31440000:tg.set_LineType(31440001);break;case 32273000:tg.set_LineType(32273001);break;case 32272000:tg.set_LineType(32272001);break;case 32234300:tg.set_LineType(32234301);break;case 32234200:tg.set_LineType(32234201);break;case 32234100:tg.set_LineType(32234101);break;case 32233700:tg.set_LineType(32233701);break;case 32233600:tg.set_LineType(32233601);break;case 32231700:tg.set_LineType(32231701);break;case 32221000:tg.set_LineType(32221001);break;case 32213000:tg.set_LineType(32213001);break;case 32212000:tg.set_LineType(32212001);break;case 32161000:tg.set_LineType(32161001);break;case 32155000:tg.set_LineType(32155001);break;case 32154000:tg.set_LineType(32154001);break;case 31830000:tg.set_LineType(31830001);break;case 31820000:tg.set_LineType(31820001);break;case 31810000:tg.set_LineType(31810001);break;case 31850000:tg.set_LineType(31850001);break;case 31840000:tg.set_LineType(31840001);break;case 31860000:tg.set_LineType(31860001);break;default:break;}
- return;},createDashedPolylines:function(tg,polylines,shape){try{if(shape.getLineColor()===null)
- return polylines;var dashedPolylines=new java.util.ArrayList();var s=shape.getStroke();var dash=s.getDashArray();var lineThickness=tg.get_LineThickness();if(dash===null||dash.length<2)
- return polylines;if(dash.length===8){dash=Clazz.newArray(2,0);dash[0]=2;dash[1]=2;s=new armyc2.c2sd.graphics2d.BasicStroke(2,1,0,2,dash,0);shape.setStroke(s);}
- if(dash.length===4){if(dash[0]===lineThickness*2&&dash[1]===lineThickness*2&&dash[2]===lineThickness*2&&dash[3]===lineThickness*2){dash=Clazz.newArray(2,0);dash[0]=lineThickness;dash[1]=lineThickness;}}
- var j=0;var k=0;var i=0;var l=0;var n=0;var polyline=null;var dashedPolyline=null;var pt2d0=null;var pt2d1=null;var pt2d2=null;var pt2d3=null;var pt0=null;var pt1=null;var pt2=null;var pt3=null;var dist=0;var patternLength=0;var numSegments=0;for(j=0;j<dash.length;j++)
- patternLength+=dash[j];var sum=Clazz.newArray(dash.length,0);var remainder=0;var linetype=tg.get_LineType();for(j=0;j<sum.length;j++){for(k=0;k<=j;k++){sum[j]+=dash[k];}}
- var noShortSegments=false;switch(linetype){case 24250000:case 24211000:case 24260000:case 231116000:case 231115000:case 231114000:case 231113000:case 231112000:case 231111000:noShortSegments=true;break;default:break;}
- for(j=0;j<polylines.size();j++)
- {polyline=polylines.get(j);for(k=0;k<polyline.size()-1;k++)
- {pt2d0=polyline.get(k);pt2d1=polyline.get(k+1);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d0.getX(),pt2d0.getY());pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pt2d1.getX(),pt2d1.getY());dist=armyc2.c2sd.JavaLineArray.lineutility.CalcDistanceDouble(pt0,pt1);numSegments=Math.floor((dist/patternLength));if(noShortSegments)
- if(dist<25)
- numSegments=1;for(l=0;l<numSegments;l++)
- {for(i=0;i<dash.length;i++)
- {if(i%2===0)
- {dashedPolyline=new java.util.ArrayList();if(i===0)
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt1,l*patternLength);else
- pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt1,l*patternLength+sum[i-1]);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt1,l*patternLength+sum[i]);pt2d2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);pt2d3=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt3.x,pt3.y);dashedPolyline.add(pt2d2);dashedPolyline.add(pt2d3);dashedPolylines.add(dashedPolyline);}}}
- remainder=dist-numSegments*patternLength;if(remainder>0)
- {dashedPolyline=new java.util.ArrayList();pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendAlongLineDouble2(pt0,pt1,numSegments*patternLength+remainder/2);pt2d2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt2.x,pt2.y);dashedPolyline.add(pt2d2);dashedPolyline.add(pt2d1);dashedPolylines.add(dashedPolyline);}}}
- return dashedPolylines;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"createDashedPolylines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside createDashedPolylines",exc));}else{throw exc;}}},createSimpleFillShape:function(tg,shape,polylines){try{var s=shape.getStroke();var dash=s.getDashArray();if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(tg.get_LineType())===false)
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(tg.get_LineType(),null)===false)
- {return null;}
- if(dash===null||dash.length<2)
- return null;var j=0;var k=0;var shape2=new armyc2.c2sd.renderer.utilities.ShapeInfo(shape.getShape());shape2.setShapeType(armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_FILL);var polylines2=new java.util.ArrayList();var polyline=null;var polyline2=null;var pt2d=null;s=new armyc2.c2sd.graphics2d.BasicStroke(0);shape2.setStroke(s);shape2.setFillColor(shape.getFillColor());for(j=0;j<polylines.size();j++)
- {polyline=polylines.get(j);polyline2=new java.util.ArrayList();for(k=0;k<polyline.size();k++)
- {pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(polyline.get(k).getX(),polyline.get(k).getY());polyline2.add(pt2d);}
- polylines2.add(polyline2);}
- shape.setShapeType(armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_POLYLINE);shape.setFillColor(null);shape2.setPolylines(polylines2);shape2.setAffineTransform(new armyc2.c2sd.graphics2d.AffineTransform());return shape2;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"createSimpleFillShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside createSimpleFillShape",exc));}else{throw exc;}}
- return null;},allowFillForThese:function(tg){try{var linetype=tg.get_LineType();var bolMETOC=armyc2.c2sd.JavaTacticalRenderer.clsMETOC.IsWeather(tg.get_SymbolId());if(bolMETOC>=0)
- return true;switch(linetype){case 15000001:case 15000003:case 21700000:case 21700000:case 21710000:case 22320000:case 22521100:case 22521200:case 22521300:case 22521410:case 22521420:case 22139000:case 243112000:case 243111000:case 23172000:case 23173000:case 23174000:case 23200001:case 23211000:case 23131200:case 23132000:case 23223000:case 23212000:case 23213000:case 32214000:return true;default:return false;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"allowFillForThese",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside allowFillForThese",exc));}else{throw exc;}}
- return false;},SetShapeInfosPolylines:function(tg,shapeInfos,clipBounds){try{var j=0;var shape=null;var shapeInfo=null;var polylines=null;var type=-1;var simpleFillShape=null;var isClosed=new Boolean(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(tg.get_LineType()));var linetype=tg.get_LineType();var fillColor=null;for(j=0;j<shapeInfos.size();j++){shapeInfo=shapeInfos.get(j);type=shapeInfo.getShapeType();shape=shapeInfo.getShape();if(isClosed.booleanValue()===false&&type!==armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_FILL)
- {polylines=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.createRenderablesFromShape(tg,shape,type,clipBounds);}
- else
- {polylines=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.createRenderablesFromShape(tg,shape,type,null);}
- if(simpleFillShape===null)
- {simpleFillShape=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.createSimpleFillShape(tg,shapeInfo,polylines);}
- fillColor=shapeInfo.getFillColor();if(simpleFillShape!==null)
- if(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.allowFillForThese(tg)===false)
- shapeInfo.setFillColor(null);polylines=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.createDashedPolylines(tg,polylines,shapeInfo);shapeInfo.setPolylines(polylines);}
- if(simpleFillShape!==null)
- {shapeInfos.add(0,simpleFillShape);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"SetShapeInfosPolylines",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside SetShapeInfosPolylines",exc));}else{throw exc;}}},createRenderablesFromShape:function(tg,shape,shapeType,clipArea){var ptsPoly=new java.util.ArrayList();var polylines2=new java.util.ArrayList();var ptPoly=null;try{var coords=Clazz.newArray(6,0);var clipBounds=null;var clipPoints=null;var pt2d=null;if(clipArea!==null){if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle2D)
- clipBounds=clipArea;else if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle)
- clipBounds=clipArea;else if(clipArea instanceof java.util.ArrayList)
- clipPoints=clipArea;}
- for(var i=shape.getPathIterator(null);!i.isDone();i.next()){var type=i.currentSegment(coords);switch(type){case 0:if(ptsPoly.size()>0)
- {if(shapeType===armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_FILL)
- {if(ptsPoly[ptsPoly.length-1].getX()!==ptsPoly[0].getX()||ptsPoly[ptsPoly.length-1].getY()!==ptsPoly[0].getY())
- {pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ptsPoly[0].getX(),ptsPoly[0].getY());ptsPoly.add(pt2d)}}
- polylines2.add(ptsPoly);}
- ptsPoly=new java.util.ArrayList();ptPoly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(coords[0],coords[1]);ptsPoly.add(ptPoly);break;case 1:ptPoly=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(coords[0],coords[1]);ptsPoly.add(ptPoly);break;case 2:break;case 3:break;case 4:break;}}
- if(ptsPoly.size()>0)
- {if(shapeType===armyc2.c2sd.renderer.utilities.ShapeInfo.SHAPE_TYPE_FILL)
- {if(ptsPoly.get(ptsPoly.size()-1).getX()!==ptsPoly.get(0).getX()||ptsPoly.get(ptsPoly.size()-1).getY()!==ptsPoly.get(0).getY())
- {pt2d=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(ptsPoly.get(0).getX(),ptsPoly.get(0).getY());ptsPoly.add(pt2d);}}
- polylines2.add(ptsPoly);}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"createRenderableFromShape",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside createRenderableFromShape",exc));}else{throw exc;}}
- return polylines2;},expandPolygon:function(pts,expand){var lgPoly=null;try{var j=0;var destPts=null;var isClosed=false;if(pts.get(pts.size()-1).getX()===pts.get(0).getX()&&pts.get(pts.size()-1).getY()===pts.get(0).getY()){pts.remove(pts.size()-1);isClosed=true;}
- var pts2=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtility.Points2DToPOINT2(pts);var pt0=null;var pt1=null;var pt2=null;var pt3=null;var m=0;var m1=0;var b=0;var b1=0;var lineSegments=new java.util.ArrayList();for(j=0;j<pts2.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2.get(j));pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2.get(j+1));if(pt0.x===pt1.x){pt1.x+=1;pts2.set(j+1,pt1);}}
- var ptn=pts2.get(pts2.size()-1);pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2.get(0));if(ptn.x===pt0.x){ptn.x+=1;pts2.set(pts2.size()-1,ptn);}
- pts2.add(pt0);var poly=new armyc2.c2sd.graphics2d.Polygon();for(j=0;j<pts2.size();j++)
- poly.addPoint(Math.floor(pts2.get(j).x),Math.floor(pts2.get(j).y));var lineSegment=null;var midPt=null;for(j=0;j<pts2.size()-1;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2.get(j));pt1=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(pts2.get(j+1));m=(pt0.y-pt1.y)/(pt0.x-pt1.x);if(Math.abs(m)<1){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,armyc2.c2sd.JavaLineArray.lineutility.extend_above,expand);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,armyc2.c2sd.JavaLineArray.lineutility.extend_above,expand);midPt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt2,pt3,0);if(poly.contains(midPt.x,midPt.y)){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,armyc2.c2sd.JavaLineArray.lineutility.extend_below,expand);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,armyc2.c2sd.JavaLineArray.lineutility.extend_below,expand);}}else{pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,armyc2.c2sd.JavaLineArray.lineutility.extend_left,expand);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,armyc2.c2sd.JavaLineArray.lineutility.extend_left,expand);midPt=armyc2.c2sd.JavaLineArray.lineutility.MidPointDouble(pt2,pt3,0);if(poly.contains(midPt.x,midPt.y)){pt2=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt0,armyc2.c2sd.JavaLineArray.lineutility.extend_right,expand);pt3=armyc2.c2sd.JavaLineArray.lineutility.ExtendDirectedLine(pt0,pt1,pt1,armyc2.c2sd.JavaLineArray.lineutility.extend_right,expand);}}
- lineSegment=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt2.x,pt2.y,pt3.x,pt3.y);lineSegments.add(lineSegment);}
- var expandPts=new java.util.ArrayList();var thisLine=null;var nextLine=null;var x1=0;var y1=0;var x2=0;var y2=0;var x=0;var y=0;for(j=0;j<lineSegments.size();j++){thisLine=lineSegments.get(j);x1=thisLine.getX1();y1=thisLine.getY1();x2=thisLine.getX2();y2=thisLine.getY2();m=(y1-y2)/(x1-x2);b=y1-m*x1;if(j===lineSegments.size()-1)
- nextLine=lineSegments.get(0);else
- nextLine=lineSegments.get(j+1);x1=nextLine.getX1();y1=nextLine.getY1();x2=nextLine.getX2();y2=nextLine.getY2();m1=(y1-y2)/(x1-x2);b1=y1-m1*x1;if(m!==m1){x=(b1-b)/(m-m1);y=(m*x+b);}else{x=thisLine.getX2();y=thisLine.getY2();}
- expandPts.add(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x,y));}
- lgPoly=new java.util.ArrayList();for(j=0;j<expandPts.size();j++)
- lgPoly.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(expandPts.get(j).x,expandPts.get(j).y));if(isClosed)
- lgPoly.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(lgPoly.get(0).getX(),lgPoly.get(0).getY()));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"expandPolygon2",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside expandPolygon2",exc));}else{throw exc;}}
- return lgPoly;},expandPolygon2:function(pts,expandX,expandY){var lgPoly=null;try{var at=new armyc2.c2sd.graphics2d.AffineTransform();at.setToIdentity();var avgX=0;var avgY=0;var totalX=0;var totalY=0;var j=0;var isClosed=false;if(pts.get(pts.size()-1).getX()===pts.get(0).getX()&&pts.get(pts.size()-1).getY()===pts.get(0).getY()){pts.remove(pts.size()-1);isClosed=true;}
- for(j=0;j<pts.size();j++){totalX+=pts.get(j).getX();totalY+=pts.get(j).getY();}
- avgX=totalX/pts.size();avgY=totalY/pts.size();var srcPts=new Array(pts.size());for(j=0;j<pts.size();j++){srcPts[j]=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pts.get(j).getX(),pts.get(j).getY());}
- var destPts=new Array(pts.size());at.translate(-avgY,-avgY);at.transform(srcPts,0,destPts,0,srcPts.length);at.setToIdentity();at.scale(expandX,expandY);at.transform(destPts,0,destPts,0,destPts.length);at.setToIdentity();at.translate(avgY,avgY);at.transform(destPts,0,destPts,0,destPts.length);lgPoly=new java.util.ArrayList();for(j=0;j<destPts.length;j++){lgPoly.add(destPts[j]);}
- if(isClosed)
- lgPoly.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(destPts[0].getX(),destPts[0].getY()));}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"expandPolygon",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside expandPolygon",exc));}else{throw exc;}}
- return lgPoly;},removeTrailingPoints:function(tg,clipArea){try{var isClosed=armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(tg.get_LineType());if(isClosed)
- return;var poly=new armyc2.c2sd.graphics2d.Polygon();var area=null;var clipBounds=null;var clipPoints=null;var j=0;if(clipArea===null)
- return;if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle2D)
- clipBounds=clipArea;else if(clipArea instanceof armyc2.c2sd.graphics2d.Rectangle)
- clipBounds=clipArea;else if(clipArea instanceof java.util.ArrayList)
- clipPoints=clipArea;if(clipBounds!==null){clipPoints=new java.util.ArrayList();clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.getX(),clipBounds.getY()));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.getX()+clipBounds.getWidth(),clipBounds.getY()));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.getX()+clipBounds.getWidth(),clipBounds.getY()+clipBounds.getHeight()));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.getX(),clipBounds.getY()+clipBounds.getHeight()));clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(clipBounds.getX(),clipBounds.getY()));}
- var ptLast=clipPoints.get(clipPoints.size()-1);var pt02d=clipPoints.get(0);if(pt02d.getX()!==ptLast.getX()||pt02d.getY()!==ptLast.getY()){clipPoints.add(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setPoint2D(pt02d.getX(),pt02d.getY()));}
- for(j=0;j<clipPoints.size();j++){pt02d=clipPoints.get(j);poly.addPoint(Math.floor(pt02d.getX()),Math.floor(pt02d.getY()));}
- area=new armyc2.c2sd.graphics2d.Area(poly);var line=null;var pt0=null;var pt1=null;var intersects=false;var frontIndex=0;var backIndex=tg.Pixels.size()-1;for(j=0;j<tg.Pixels.size()-1;j++)
- {pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j+1);line=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0.x,pt0.y,pt1.x,pt1.y);intersects=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.lineIntersectsClipArea(line,clipPoints);if(intersects===true){frontIndex=j;break;}else if(area.containsPt2(Math.floor(pt0.x),Math.floor(pt0.y))||area.containsPt2(Math.floor(pt1.x),Math.floor(pt1.y))){frontIndex=j;break;}}
- for(j=tg.Pixels.size()-1;j>0;j--){pt0=tg.Pixels.get(j);pt1=tg.Pixels.get(j-1);line=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(pt0.x,pt0.y,pt1.x,pt1.y);intersects=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.lineIntersectsClipArea(line,clipPoints);if(intersects===true){backIndex=j;break;}else if(area.containsPt2(Math.floor(pt0.x),Math.floor(pt0.y))||area.containsPt2(Math.floor(pt1.x),Math.floor(pt1.y))){backIndex=j;break;}}
- var pts=new java.util.ArrayList();for(j=frontIndex;j<=backIndex;j++){pt0=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(tg.Pixels.get(j));pts.add(pt0);}
- tg.Pixels=pts;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("clsRenderer","removeTrailingPoints",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside removeTrailingPoints",exc));}else{throw exc;}}},lineIntersectsClipArea:function(line,clipPts){var result=false;try{var j=0;var poly=new armyc2.c2sd.graphics2d.Polygon();for(j=0;j<clipPts.size();j++)
- poly.addPoint(Math.floor(clipPts.get(j).x),Math.floor(clipPts.get(j).y));if(poly.contains(line.x1,line.y1))
- return true;if(poly.contains(line.x2,line.y2))
- return true;var currentSegment=null;for(j=0;j<clipPts.size()-1;j++){currentSegment=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(clipPts.get(j).getX(),clipPts.get(j).getY(),clipPts.get(j+1).getX(),clipPts.get(j+1).getY());if(line.intersectsLine(currentSegment)===true)
- return true;}
- var pt0=clipPts.get(0);var ptLast=clipPts.get(clipPts.size()-1);if(pt0.getX()!==ptLast.getX()||pt0.getY()!==ptLast.getY()){currentSegment=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.setLine2D(ptLast.getX(),ptLast.getY(),pt0.getX(),pt0.getY());if(line.intersectsLine(currentSegment)===true)
- return true;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"lineIntersectsClipArea",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside lineIntersectsClipArea",exc));}else{throw exc;}}
- return result;},buildHatchFills2:function(tg,shapes){try{if(shapes===null||shapes.size()===0)
- return;var lineType=tg.get_LineType();var hatch=tg.get_FillStyle();var symbolID=tg.get_SymbolId();var j=0;var hatch2=0;var shape2=null;var index=0;if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.isClosedPolygon(lineType)===false)
- if(armyc2.c2sd.JavaTacticalRenderer.clsUtility.IsChange1Area(lineType,null)===false)
- return;switch(lineType){case 24324100:case 24324300:case 24324200:case 24352000:case 24362000:case 24353000:case 24363000:case 24351000:case 24361000:case 23450000:case 23460000:case 23440000:case 22235000:case 23115000:hatch=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_BackwardDiagonal;break;case 221310000:hatch=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_ForwardDiagonal;break;default:if(hatch<=0)
- return;break;}
- for(j=0;j<shapes.size();j++){shape2=shapes.get(j);hatch2=shape2.get_FillStyle();if(hatch2===hatch){index=j;break;}}
- for(var k=0;k<shapes.size();k++){var shape=null;if(lineType===243111000||lineType===243112000){shape=shapes.get(k);shape2=shapes.get(k);hatch=shape2.get_FillStyle();}else
- shape=shapes.get(index);if(hatch<armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_ForwardDiagonal)
- continue;if(hatch!==armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_Cross)
- {shape=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.buildHatchFill2(shape,hatch);shape.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(1));shape.setLineColor(tg.get_LineColor());shapes.add(shape);}else{var shapeBk=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.buildHatchFill2(shape,armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_BackwardDiagonal);var shapeFwd=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.buildHatchFill2(shape,armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_ForwardDiagonal);shapeBk.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(1));shapeBk.setLineColor(tg.get_LineColor());shapes.add(shapeBk);shapeFwd.setStroke(new armyc2.c2sd.graphics2d.BasicStroke(1));shapeFwd.setLineColor(tg.get_LineColor());shapes.add(shapeFwd);}
- if(lineType!==243111000&&lineType!==243112000)
- break;}
- switch(lineType){case 23115000:for(j=0;j<shapes.size();j++){shape=shapes.get(j);var color=shape.getLineColor();if(color===null){continue;}
- if(shape.getLineColor().toARGB()===0){shapes.remove(j);break;}}
- break;default:break;}}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"buildHatchFills",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside buildHatcHFills on symbol: "+symbolID,exc));}else{throw exc;}}
- return;},buildHatchFill2:function(shape,hatch){var hatchLineShape=null;try{hatchLineShape=new armyc2.c2sd.JavaLineArray.Shape2(armyc2.c2sd.JavaLineArray.Shape2.SHAPE_TYPE_POLYLINE);var hatchLineArea=null;var rect=shape.getBounds();var x0=rect.getX();var y0=rect.getY();var width=rect.getWidth();var height=rect.getHeight();if(width>height)
- height=width;else
- width=height;width*=2;height*=2;var horizLimit=0;var vertLimit=0;var j=0;var vertPts=new java.util.ArrayList();var horizPts=new java.util.ArrayList();var vertPt=null;var horizPt=null;if(hatch===armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_BackwardDiagonal){horizLimit=Math.floor((width/20.0));vertLimit=Math.floor((height/20.0));for(j=0;j<vertLimit;j++){vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0+20*j);vertPts.add(vertPt);}
- for(j=0;j<horizLimit;j++){horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+20*j,y0);horizPts.add(horizPt);}
- hatchLineShape.moveTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0));for(j=0;j<vertLimit;j++){if(j%2===0){hatchLineShape.lineTo(vertPts.get(j));hatchLineShape.lineTo(horizPts.get(j));}else{hatchLineShape.lineTo(horizPts.get(j));hatchLineShape.lineTo(vertPts.get(j));}}
- hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+10,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));}
- if(hatch===armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_ForwardDiagonal){horizLimit=Math.floor((width/20.0));vertLimit=Math.floor((height/20.0));horizLimit*=2;vertLimit*=2;for(j=0;j<vertLimit;j++){vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0+height-20*j);vertPts.add(vertPt);}
- for(j=0;j<horizLimit;j++){horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+20*j,y0+height);horizPts.add(horizPt);}
- hatchLineShape.moveTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0));for(j=0;j<vertLimit;j++){if(j%2===0){hatchLineShape.lineTo(vertPts.get(j));hatchLineShape.lineTo(horizPts.get(j));}else{hatchLineShape.lineTo(horizPts.get(j));hatchLineShape.lineTo(vertPts.get(j));}}
- hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+10,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));}
- if(hatch===armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_Vertical){horizLimit=Math.floor((width/10.0));vertLimit=Math.floor((height/10.0));for(j=0;j<horizLimit;j++){if(j%2===0){vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+10*j,y0);vertPts.add(vertPt);vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+10*j,y0+height);vertPts.add(vertPt);}else{vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+10*j,y0+height);vertPts.add(vertPt);vertPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+10*j,y0);vertPts.add(vertPt);}}
- hatchLineShape.moveTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0));for(j=0;j<vertLimit-1;j++){hatchLineShape.lineTo(vertPts.get(j));}
- hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+10,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+20,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));}
- if(hatch===armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE.Hatch_Horizontal){horizLimit=Math.floor((width/10.0));vertLimit=Math.floor((height/10.0));for(j=0;j<vertLimit;j++){if(j%2===0){horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0+10*j);horizPts.add(horizPt);horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width,y0+10*j);horizPts.add(horizPt);}else{horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width,y0+10*j);horizPts.add(horizPt);horizPt=armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0+10*j);horizPts.add(horizPt);}}
- hatchLineShape.moveTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0,y0));for(j=0;j<vertLimit-1;j++){hatchLineShape.lineTo(horizPts.get(j));}
- hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-10,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-20,y0+height+10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0-20,y0-10));hatchLineShape.lineTo(armyc2.c2sd.JavaLineArray.lineutility.setPOINT2(x0+width+10,y0-10));}
- var shapeArea=new armyc2.c2sd.graphics2d.Area(shape.getShape());hatchLineArea=new armyc2.c2sd.graphics2d.Area(hatchLineShape.getShape());hatchLineArea.intersect(shapeArea);hatchLineShape.setShape(hatchLineArea);}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"buildHatchArea",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside buildHatchArea",exc));}else{throw exc;}}
- return hatchLineShape;},segmentColorsSet:function(tg){try{switch(tg.get_LineType()){case 22121000:case 25221000:case 25222000:break;default:return false;}
- var strH=tg.get_H();if(strH===null||strH.isEmpty())
- return false;var strs=strH.$plit(",");if(strs.length>1)
- return true;}catch(exc){if(Clazz.instanceOf(exc)){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException(armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsUtilityGE._className,"segmentColorsSet",new armyc2.c2sd.renderer.utilities.RendererException("Failed inside segmentColorsSet",exc));}else{throw exc;}}
- return false;},setPoint2D:function(){var pt2d=new armyc2.c2sd.graphics2d.Point2D();if(arguments.length===1)
- {pt2d.x=arguments[0].x;pt2d.y=arguments[0].y;}
- else if(arguments.length===2)
- {pt2d.x=arguments[0];pt2d.y=arguments[1];}
- return pt2d;},setLine2D:function()
- {var line=new armyc2.c2sd.graphics2d.Line2D();if(arguments.length===1)
- {var line1=arguments[0];line.x1=line1.x1;line.y1=line1.y1;line.x2=line1.x2;line.y2=line1.y2;}
- else if(arguments.length===2)
- {var pt1=arguments[0];var pt2=arguments[1];line.x1=pt1.x;line.y1=pt1.y;line.x2=pt2.x;line.y2=pt2.y;}
- else if(arguments.length===4)
- {var x1=arguments[0];var y1=arguments[1];var x2=arguments[2];var y2=arguments[3];line.x1=x1;line.y1=y1;line.x2=x2;line.y2=y2;}
- return line;},_className:"clsUtilityGE",Hatch_ForwardDiagonal:2,Hatch_BackwardDiagonal:3,Hatch_Vertical:4,Hatch_Horizontal:5,Hatch_Cross:8};var java=java||{};java.util=java.util||{};java.util.ArrayList=function()
- {this.array=[];if(arguments.length===1)
- {var obj=arguments[0];if(obj instanceof java.util.ArrayList)
- {this.array=obj.getArray();}
- else if(obj instanceof Array)
- {this.array=arguments[0];}}};java.util.ArrayList.prototype.getArray=function()
- {return this.array;};java.util.ArrayList.prototype.setArray=function(obj)
- {this.array=obj;};java.util.ArrayList.prototype.add=function(obj)
- {if(arguments.length===1)
- this.array.push(obj);else if(arguments.length===2)
- {var j=0,k=0;var array2=[];var location=arguments[0];var obj2=arguments[1];if(location===this.array.length)
- {this.array.push(obj2);}
- else
- {for(j=0;j<this.array.length;j++)
- {if(j!==location)
- {array2.push(this.array[j]);}
- else
- {array2.push(obj2);array2.push(this.array[j]);}}
- this.array=array2;}}};java.util.ArrayList.prototype.addAll=function()
- {var location=0,j=0,k=0;var obj=null;var b=false;if(arguments.length===1)
- {obj=arguments[0];if(obj instanceof java.util.ArrayList)
- {this.array=this.array.concat(obj.getArray());}}
- else if(arguments.length===2)
- {location=arguments[0];obj=arguments[1];b=obj instanceof java.util.ArrayList;if(b===false)
- return;var array2=[];var obj2=null;for(j=0;j<this.array.length;j++)
- {if(j!==location)
- {array2.push(this.array[j]);}
- else
- {for(k=0;k<obj.size();k++)
- {obj2=obj.get(k);array2.push(obj2);}
- array2.push(this.array[j]);}}
- this.array=array2;}};java.util.ArrayList.prototype.clear=function(){this.array=[];};java.util.ArrayList.prototype.clone=function(){var a=new java.util.ArrayList();var j=0;for(j=0;j<this.array.length;j++)
- {a.add(this.array[j]);}
- return a;};java.util.ArrayList.prototype.remove=function(location){this.array.splice(location,1);};java.util.ArrayList.prototype.removeRange=function(start,end){this.array.splice(start,end-start);};java.util.ArrayList.prototype.get=function(location){if(location<this.array.length)
- {return this.array[location];}
- else
- {throw new Error("java.util.ArrayList.prototype.get - Index "+location+" out of Bounds");}};java.util.ArrayList.prototype.set=function(location,obj){if(location<this.array.length)
- {this.array[location]=obj;}
- else
- {throw new Error("java.util.ArrayList.prototype.set - Index "+location+" out of Bounds");}};java.util.ArrayList.prototype.toArray=function(){var j=0;var a=[];for(j=0;j<this.array.length;j++)
- a.push(this.array[j]);return a;};java.util.ArrayList.prototype.size=function(){return this.array.length;};java.util.ArrayList.prototype.isEmpty=function(){if(this.array===null||this.array.length===0)
- return true;return false;};java.util.ArrayList.prototype.contains=function(obj){for(var j=0;j<this.array.length;j++){if(obj===this.array[j])
- return true;}
- return false;};java.util.ArrayList.prototype.indexOf=function(obj){for(var j=0;j<this.array.length;j++){if(obj===this.array[j])
- return j;}
- return-1;};var java=java||{};java.util=java.util||{};java.util.HashMap=function()
- {var length=0;var items=new Array();for(var i=0;i<arguments.length;i+=2){if(typeof(arguments[i+1])!=='undefined'){items[arguments[i]]=arguments[i+1];length++;}}
- this.remove=function(in_key)
- {var tmp_value;if(typeof(items[in_key])!=='undefined'){length--;tmp_value=items[in_key];delete items[in_key];}
- return tmp_value;};this.get=function(in_key){return items[in_key];};this.put=function(in_key,in_value)
- {if(typeof(in_value)!=='undefined'){if(typeof(items[in_key])==='undefined'){length++;}
- items[in_key]=in_value;}
- return in_value;};this.containsKey=function(in_key)
- {return typeof(items[in_key])!=='undefined';};this.containsValue=function(value)
- {var j=0;for(j=0;j<items.length;j++)
- {if(items[j]===value)
- {return true;}}
- return false;};this.size=function()
- {return length;};};var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.TacticalGraphicIconRenderer=(function(){var fontSizeForTGIcons=60;return{getIcon:function(symbolID,size,color){var id=symbolID;if(armyc2.c2sd.renderer.utilities.SymbolUtilities.isWeather(symbolID)===true)
- {color=armyc2.c2sd.renderer.utilities.SymbolUtilities.getLineColorOfWeather(symbolID).toHexString(false);}
- else if(color===null)
- {color=armyc2.c2sd.renderer.utilities.SymbolUtilities.getLineColorOfAffiliation(symbolID).toHexString(false);}
- var charSymbolIndex=armyc2.c2sd.renderer.utilities.TacticalGraphicLookup.getCharCodeFromSymbol(id);if(charSymbolIndex>=0)
- {var fontSize=fontSizeForTGIcons;var ratio=size/40.0;var strSymbol=String.fromCharCode(charSymbolIndex);var pixel=new armyc2.c2sd.renderer.so.Point(0,0);if(ratio>0)
- {fontSize=fontSize*ratio;}
- fontSize=(fontSize/96*72);var buffer=this.createBuffer(size,size),ctx=buffer.getContext('2d');ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=5;ctx.fillStyle=color;ctx.font=fontSize+"pt TacticalGraphics";var x=Math.round(size/2),y=Math.round(size/2);ctx.fillText(strSymbol,x,y);var centerPoint=new armyc2.c2sd.renderer.so.Point(x,y),symbolBounds=new armyc2.c2sd.renderer.so.Rectangle(0,0,size,size),imageBounds=symbolBounds.clone();var ii=new armyc2.c2sd.renderer.utilities.ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);return ii;}},createBuffer:function(width,height)
- {var buffer=document.createElement('canvas');buffer.width=width;buffer.height=height;return buffer;}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.SinglePointRenderer=(function(){var SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,UnitFontLookup=armyc2.c2sd.renderer.utilities.UnitFontLookup,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings,SO=armyc2.c2sd.renderer.so,RendererUtilities=armyc2.c2sd.renderer.utilities.RendererUtilities,TextInfo=armyc2.c2sd.renderer.utilities.TextInfo,ImageInfo=armyc2.c2sd.renderer.utilities.ImageInfo,MilStdAttributes=armyc2.c2sd.renderer.utilities.MilStdAttributes,SymbolDimensions=armyc2.c2sd.renderer.utilities.SymbolDimensions,ModifiersUnits=armyc2.c2sd.renderer.utilities.ModifiersUnits,ModifiersTG=armyc2.c2sd.renderer.utilities.ModifiersTG,SinglePointLookup=armyc2.c2sd.renderer.utilities.SinglePointLookup;var textInfoBuffer=null,textInfoContext=null,textInfoContextFont=null,_bufferUnit=null,_bufferUnitSize=150,_bufferSymbol=null,_bufferSymbolSize=150,_bufferDisplayModifiers=null,_document=document;var _statusColorMap={"C":"#00FF00","D":"#FFFF00","X":"#FF0000","F":"#0000FF"},_unitTextModifierKeys=["B","C","F","G","H","H1","H2","J","K","L","M","N","P","R2","T","T1","V","W","W1","X","Y","Z","AC","AD","AE","AF","CN"],_tgTextModifierKeys=["B","C","F","G","H","H1","H2","N","T","T1","V","W","W1","X","Y","AM","AN","Length","Width","Radius","Angle"];return{checkModifierFont:function()
- {if(textInfoBuffer===null)
- textInfoBuffer=this.createBuffer(1,1);if(textInfoContext===null&&textInfoBuffer.getContext!==undefined)
- {textInfoContext=textInfoBuffer.getContext('2d');textInfoContext.lineCap="butt";textInfoContext.lineJoin="miter";textInfoContext.miterLimit=3;}
- if(textInfoContextFont!==RendererSettings.getModifierFont())
- {textInfoContextFont=RendererSettings.getModifierFont();textInfoContext.font=textInfoContextFont;}},renderUnit:function(symbolID,modifiers)
- {var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];if(render&&_bufferUnit===null)
- {_bufferUnit=this.createBuffer(_bufferUnitSize,_bufferUnitSize);ctx=_bufferUnit.getContext('2d');ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=3;}
- if(modifiers===undefined||modifiers===null)
- modifiers={};var pixel=null,basicID=SymbolUtilities.getBasicSymbolID(symbolID),symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard(),ufli=UnitFontLookup.getUnitLookup(basicID,symStd),strUnitFont="";var intFill=UnitFontLookup.getFillCode(symbolID),intFrame=UnitFontLookup.getFrameCode(symbolID,intFill,symStd),fillColor=SymbolUtilities.getFillColorOfAffiliation(symbolID).toHexString(false),lineColor=SymbolUtilities.getLineColorOfAffiliation(symbolID).toHexString(false),fill=(intFill>0)?String.fromCharCode(intFill):null,frame=(intFrame>0)?String.fromCharCode(intFrame):null,mapping1=ufli.getMapping1(symbolID),mapping2=ufli.getMapping2(),symbol1=(mapping1!==null)?String.fromCharCode(mapping1):null,symbol2=(mapping2!==null)?String.fromCharCode(mapping2):null,color1=ufli.getColor1(),color2=ufli.getColor2(),buffer=null,ctx=null;var hasDisplayModifiers=false;var hasTextModifiers=false;var intFrameAssume=-1,frameAssume=null;if(render===false)
- ctx={};if(symStd>RendererSettings.Symbology_2525Bch2_USAS_13_14)
- {var affiliation=symbolID.charAt(1);switch(affiliation)
- {case'P':case'A':case'S':case'G':case'M':intFrameAssume=intFill+2;break;}
- if(intFrameAssume>0)
- frameAssume=String.fromCharCode(intFrameAssume);}
- this.checkModifierFont();if(modifiers===undefined||modifiers===null)
- modifiers={};var pixelSize=-1;if(modifiers[MilStdAttributes.PixelSize])
- {pixelSize=modifiers[MilStdAttributes.PixelSize];}
- else
- {pixelSize=RendererSettings.getDefaultPixelSize();}
- var keepUnitRatio=true;if(modifiers[MilStdAttributes.KeepUnitRatio]!==undefined)
- {keepUnitRatio=modifiers[MilStdAttributes.KeepUnitRatio];}
- var icon=false;if(modifiers[MilStdAttributes.Icon]!==undefined)
- {icon=modifiers[MilStdAttributes.Icon];}
- if(icon)
- {keepUnitRatio=false;hasDisplayModifiers=false;hasTextModifiers=false;symbolID=symbolID.substring(0,10)+"-----";}
- else
- {hasDisplayModifiers=this.hasDisplayModifiers(symbolID,modifiers);hasTextModifiers=this.hasTextModifiers(symbolID,modifiers);}
- if(modifiers[MilStdAttributes.LineColor]!==undefined)
- {lineColor=modifiers[MilStdAttributes.LineColor];}
- if(modifiers[MilStdAttributes.FillColor]!==undefined)
- {fillColor=modifiers[MilStdAttributes.FillColor];}
- var symbolBounds=SymbolDimensions.getUnitBounds(intFill,50);var rect=SymbolDimensions.getUnitBounds(intFill,50);if(pixelSize>0&&keepUnitRatio===true)
- {var heightRatio=UnitFontLookup.getUnitRatioHeight(intFill),widthRatio=UnitFontLookup.getUnitRatioWidth(intFill);var ratio=-1;if(heightRatio>widthRatio)
- {pixelSize=(pixelSize/1.5)*heightRatio;}
- else
- {pixelSize=(pixelSize/1.5)*widthRatio;}}
- if(pixelSize>0)
- {ratio=Math.min((pixelSize/rect.getHeight()),(pixelSize/rect.getWidth()));var fontsize=50;fontsize=(((fontsize*ratio)/96)*72);strUnitFont=fontsize+"pt UnitFont";symbolBounds=SymbolDimensions.getUnitBounds(intFill,(50*ratio));}
- else
- {strUnitFont=150+"pt UnitFont";}
- var symbolWidth=Math.round(symbolBounds.getWidth()),symbolHeight=Math.round(symbolBounds.getHeight());if(render===true)
- {if(hasDisplayModifiers===true||hasTextModifiers===true)
- {buffer=_bufferUnit;ctx=buffer.getContext('2d');ctx.clearRect(0,0,_bufferUnitSize,_bufferUnitSize);}
- else
- {buffer=this.createBuffer(symbolWidth,symbolHeight);ctx=buffer.getContext('2d');ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=3;}
- ctx.font=strUnitFont;}
- var x=Math.round(symbolBounds.getWidth()/2),y=Math.round((symbolBounds.getHeight()/2)+symbolBounds.getY());if(render===true)
- {if(color1==="")
- {color1="#000000";}
- if(fill!==null&&fill!=="")
- {ctx.fillStyle=fillColor;ctx.fillText(fill,x,y);}
- if(frame!==null&&frame!=="")
- {ctx.fillStyle=lineColor;ctx.fillText(frame,x,y);}
- if(frameAssume!==null&&frameAssume!=="")
- {ctx.fillStyle="#ffffff";ctx.fillText(frameAssume,x,y);}
- if(symbol2!==null&&symbol2!=="")
- {ctx.fillStyle=color2;ctx.fillText(symbol2,x,y);}
- if(symbol1!==null&&symbol1!=="")
- {ctx.fillStyle=color1;ctx.fillText(symbol1,x,y);}}
- symbolBounds.setLocation(0,0);var imageBounds=new SO.Rectangle(0,0,symbolWidth,symbolHeight);var centerPoint=new SO.Point(x,y);var ii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);var iinew=null;if(hasDisplayModifiers===true)
- iinew=this.processUnitDisplayModifiers(ii,symbolID,modifiers,hasTextModifiers);if(iinew!==null)
- ii=iinew;iinew=null;if(hasTextModifiers===true)
- iinew=this.processUnitModifiers(ii,symbolID,modifiers);if(iinew!==null)
- ii=iinew;ctx=null;buffer=null;if(icon)
- return ii.getSquareImageInfo();else
- return ii;},processUnitDisplayModifiers:function(ii,symbolID,modifiers){var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];var newii=null,symbolBounds=ii.getSymbolBounds(),imageBounds=ii.getImageBounds(),centerPoint=ii.getCenterPoint(),tiEchelon=null,echelonBounds=null,amBounds=null,buffer=null,ctx=null,offsetX=0,offsetY=0,symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard();var mobilityBounds=null;var shapes=new Array();if(symbolID.charAt(10)===("M")||symbolID.charAt(10)===("N"))
- {var x=0,y=0,centerX=0,bottomY=0,height=0,width=0,middleY=0,wheelOffset=1,wheelSize=5,rrHeight=5,rrArcWidth=8;var mobility=symbolID.substring(10,12);x=symbolBounds.getX()+1;y=symbolBounds.getY();height=Math.round(symbolBounds.getHeight());width=Math.round(symbolBounds.getWidth())-1;bottomY=y+height+1;if(symbolID.charAt(10)===("M")){wheelSize=width/7;rrHeight=width/7;switch(mobility)
- {case"MO":shapes.push(new SO.Line(x,bottomY,x+width,bottomY));shapes.push(new SO.Ellipse(x,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+width-wheelSize,bottomY+wheelOffset,wheelSize,wheelSize));break;case"MP":var line=new SO.Line(x,bottomY,x+width,bottomY);shapes.push(line);shapes.push(new SO.Ellipse(x,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+width-wheelSize,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+(width/2)-(wheelSize/2),bottomY+wheelOffset,wheelSize,wheelSize));break;case"MQ":shapes.push(new SO.RoundedRectangle(x,bottomY,width,rrHeight,rrArcWidth));break;case"MR":shapes.push(new SO.RoundedRectangle(x,bottomY,width,rrHeight,rrArcWidth));shapes.push(new SO.Ellipse(x-wheelSize-wheelSize,bottomY,wheelSize,wheelSize));break;case"MS":var line=new SO.Line(x+wheelSize,bottomY+(wheelSize/2),x+width-wheelSize,bottomY+(wheelSize/2));shapes.push(line);shapes.push(new SO.Ellipse(x,bottomY,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+width-wheelSize,bottomY,wheelSize,wheelSize));break;case"MT":var line=new SO.Line(x,bottomY,x+width,bottomY);shapes.push(line);shapes.push(new SO.Ellipse(x+wheelSize,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+width-wheelSize,bottomY+wheelOffset,wheelSize,wheelSize));shapes.push(new SO.Ellipse(x+width-wheelSize-wheelSize,bottomY+wheelOffset,wheelSize,wheelSize));break;case"MU":var muPath=new SO.Path();muPath.moveTo(x,bottomY);muPath.lineTo(x+5,bottomY+5);muPath.lineTo(x+width,bottomY+5);shapes.push(muPath);break;case"MV":var path=new SO.Path();path.moveTo(x,bottomY);path.bezierCurveTo(x,bottomY,x-rrArcWidth,bottomY+3,x,bottomY+rrHeight);path.lineTo(x+width,bottomY+rrHeight);shapes.push(path);break;case"MW":centerX=Math.round(symbolBounds.getCenterX());var mwPath=new SO.Path();mwPath.moveTo(centerX,bottomY+rrHeight+2);mwPath.lineTo(centerX-3,bottomY);mwPath.lineTo(centerX-6,bottomY+rrHeight+2);mwPath.moveTo(centerX,bottomY+rrHeight+2);mwPath.lineTo(centerX+3,bottomY);mwPath.lineTo(centerX+6,bottomY+rrHeight+2);shapes.push(mwPath);break;case"MX":centerX=Math.round(symbolBounds.getCenterX());var line=new SO.Line(x+width,bottomY,x,bottomY);shapes.push(line);var quarterX=(centerX-x)/2;shapes.push(new SO.BCurve(x,bottomY,x+quarterX,bottomY+rrHeight,centerX+quarterX,bottomY+rrHeight,x+width,bottomY));break;case"MY":var incrementX=width/7,middleY=(bottomY+(rrHeight/2));var x=Math.round(x+(incrementX/2));var r=Math.round(incrementX/2);var path=new SO.Path();path.arc(x,middleY,r,180,0);path.arc(x+incrementX,middleY,r,180,0,true);path.arc(x+incrementX*2,middleY,r,180,0);path.arc(x+incrementX*3,middleY,r,180,0,true);path.arc(x+incrementX*4,middleY,r,180,0);path.arc(x+incrementX*5,middleY,r,180,0,true);path.arc(x+incrementX*6,middleY,r,180,0);shapes.push(path);break;default:break;}}
- else if(symbolID.charAt(10)===("N")){var offsetY=1;centerX=symbolBounds.getCenterX();var squareOffset=Math.round(wheelSize/2);middleY=((rrHeight/2)+bottomY)+offsetY;if(symbolID.substring(10,12)===("NS"))
- {shapes.push(new SO.Line(centerX-1,bottomY-1,centerX-1,bottomY+rrHeight+3));shapes.push(new SO.Line(x,middleY,x+width,middleY));shapes.push(new SO.Rectangle(x-squareOffset,bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(Math.round(centerX-squareOffset),bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(x+width-squareOffset,bottomY+offsetY,5,5));}
- else if(symbolID.substring(10,12)===("NL"))
- {var leftX=x+(centerX-x)/2,rightX=centerX+(x+width-centerX)/2;shapes.push(new SO.Line(leftX,bottomY-1,leftX,bottomY+rrHeight+3));shapes.push(new SO.Line(rightX,bottomY-1,rightX,bottomY+rrHeight+3));shapes.push(new SO.Line(x,middleY,x+width,middleY));shapes.push(new SO.Rectangle(x-squareOffset,bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(centerX-squareOffset,bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(x+width-squareOffset,bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(leftX-squareOffset,bottomY+offsetY,5,5));shapes.push(new SO.Rectangle(rightX-squareOffset,bottomY+offsetY,5,5));}}
- if(shapes!==null&&shapes.length>0)
- {mobilityBounds=shapes[0].getBounds();var size=shapes.length;var tempShape=null;for(var i=1;i<size;i++)
- {tempShape=shapes[i];mobilityBounds.union(tempShape.getBounds());}
- mobilityBounds.grow(1);imageBounds.union(mobilityBounds);}}
- var strEchelon=SymbolUtilities.getEchelon(symbolID);strEchelon=SymbolUtilities.getEchelonText(strEchelon);if(strEchelon!==null&&SymbolUtilities.hasInstallationModifier(symbolID)===false&&SymbolUtilities.canUnitHaveModifier(symbolID,ModifiersUnits.B_ECHELON))
- {if(strEchelon!==null)
- {var echelonOffset=2,outlineOffset=RendererSettings.getTextOutlineWidth();var tiEchelon=new TextInfo(strEchelon,0,0,textInfoContext,textInfoContextFont);echelonBounds=tiEchelon.getTextBounds();var y=Math.round(symbolBounds.getY()-echelonOffset),x=Math.round(symbolBounds.getX()+(symbolBounds.getWidth()/2)-
- (echelonBounds.getWidth()/2));tiEchelon.setLocation(x,y);tiEchelon.getTextBounds().shiftBR(0,Math.round(-(echelonBounds.getHeight()*0.3)));echelonBounds=tiEchelon.getTextOutlineBounds();echelonBounds.shift(0,-outlineOffset);tiEchelon.setLocation(x,y-outlineOffset);imageBounds.union(echelonBounds);}}
- var affiliationModifier=null;if(RendererSettings.getDrawAffiliationModifierAsLabel()===false)
- {affiliationModifier=SymbolUtilities.getUnitAffiliationModifier(symbolID,symStd);}
- if(affiliationModifier!==null)
- {var amOffset=2,outlineOffset=RendererSettings.getTextOutlineWidth();var tiAM=new TextInfo(affiliationModifier,0,0,textInfoContext,textInfoContextFont);amBounds=tiAM.getTextBounds();var x,y;if(echelonBounds!==null&&((echelonBounds.getX()+echelonBounds.getWidth()>symbolBounds.getX()+symbolBounds.getWidth())))
- {y=Math.round(symbolBounds.getY()-amOffset),x=echelonBounds.getX()+echelonBounds.getWidth();}
- else
- {y=Math.round(symbolBounds.getY()-amOffset),x=Math.round(symbolBounds.getX()+symbolBounds.getWidth());}
- tiAM.setLocation(x,y);tiAM.getTextBounds().shiftBR(0+outlineOffset,Math.round(-(amBounds.getHeight()*0.3)));amBounds=tiAM.getTextOutlineBounds();amBounds.shift(0,-outlineOffset);tiAM.setLocation(x,y-outlineOffset);imageBounds.union(amBounds);}
- var tfBounds=null,tfRectangle=null;if(SymbolUtilities.isTaskForce(symbolID))
- {if(echelonBounds!==null)
- {tfRectangle=new SO.Rectangle(echelonBounds.getX()-1,echelonBounds.getY()-1,echelonBounds.getWidth()+3,echelonBounds.getHeight()+3);tfBounds=new SO.Rectangle(echelonBounds.getX()-2,echelonBounds.getY()-2,echelonBounds.getWidth()+5,echelonBounds.getHeight()+4);}
- else
- {var height=Math.round(symbolBounds.getHeight()/4),width=Math.round(symbolBounds.getWidth()/3);tfRectangle=new SO.Rectangle(symbolBounds.getX()+width,symbolBounds.getY()-height,width,height);tfBounds=new SO.Rectangle(tfRectangle.getX()+-1,tfRectangle.getY()-1,tfRectangle.getWidth()+2,tfRectangle.getWidth()+2);}
- imageBounds.union(tfBounds);}
- var fdiBounds=null,fdiTop=null,fdiLeft=null,fdiRight=null;if(SymbolUtilities.isFeintDummy(symbolID)||SymbolUtilities.isFeintDummyInstallation(symbolID))
- {fdiLeft=new SO.Point(symbolBounds.getX(),symbolBounds.getY());fdiRight=new SO.Point(symbolBounds.getX()+symbolBounds.getWidth(),symbolBounds.getY());var affiliation=symbolID.charAt(1);if(affiliation===("F")||affiliation===("A")||affiliation===("D")||affiliation===("M")||affiliation===("J")||affiliation===("K"))
- {fdiTop=new SO.Point(Math.round(symbolBounds.getCenterX()),Math.round(symbolBounds.getY()-(symbolBounds.getHeight()*.75)));}
- else
- {fdiTop=new SO.Point(Math.round(symbolBounds.getCenterX()),Math.round(symbolBounds.getY()-(symbolBounds.getHeight()*.54)));}
- fdiBounds=new SO.Rectangle(fdiLeft.getX(),fdiLeft.getY(),1,1);fdiBounds.unionPoint(fdiTop);fdiBounds.unionPoint(fdiRight);if(echelonBounds!==null)
- {var shiftY=(symbolBounds.getY()-echelonBounds.getHeight()-2);fdiLeft.shift(0,shiftY);fdiTop.shift(0,shiftY);fdiRight.shift(0,shiftY);fdiBounds.shift(0,shiftY);}
- imageBounds.union(fdiBounds);}
- var instRectangle=null,instBounds=null;if(SymbolUtilities.hasInstallationModifier(symbolID))
- {var affiliation=SymbolUtilities.getAffiliation(symbolID);if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K')
- {height=Math.round(symbolBounds.getHeight()/4);width=Math.round(symbolBounds.getWidth()/3);}
- else if(affiliation==='H'||affiliation==='S')
- {height=Math.round(symbolBounds.getHeight()/6);width=Math.round(symbolBounds.getWidth()/3);}
- else if(affiliation==='N'||affiliation==='L')
- {height=Math.round(symbolBounds.getHeight()/6);width=Math.round(symbolBounds.getWidth()/3);}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {height=Math.round(symbolBounds.getHeight()/6);width=Math.round(symbolBounds.getWidth()/3);}
- else
- {height=Math.round(symbolBounds.getHeight()/6);width=Math.round(symbolBounds.getWidth()/3);}
- if(affiliation==='F'||affiliation==='A'||affiliation==='D'||affiliation==='M'||affiliation==='J'||affiliation==='K'||affiliation==='N'||affiliation==='L')
- {instRectangle=new SO.Rectangle(symbolBounds.getX()+width,symbolBounds.getY()-height,width,height);}
- else if(affiliation==='H'||affiliation==='S')
- {instRectangle=new SO.Rectangle(symbolBounds.getX()+width,Math.round(symbolBounds.getY()-(height*0.15)),width,height);}
- else if(affiliation==='P'||affiliation==='U'||affiliation==='G'||affiliation==='W')
- {instRectangle=new SO.Rectangle(symbolBounds.getX()+width,Math.round(symbolBounds.getY()-(height*0.3)),width,height);}
- else
- {instRectangle=new SO.Rectangle(symbolBounds.getX()+width,Math.round(symbolBounds.getY()-(height*0.3)),width,height);}
- instBounds=new SO.Rectangle(instRectangle.getX()+-1,instRectangle.getY()-1,instRectangle.getWidth()+2,instRectangle.getWidth()+2);imageBounds.union(instBounds);}
- var hqBounds=null;if(SymbolUtilities.isHQ(symbolID))
- {var pt1HQ=null,pt2HQ=null,affiliation=symbolID.charAt(1);if(affiliation===("F")||affiliation===("A")||affiliation===("D")||affiliation===("M")||affiliation===("J")||affiliation===("K")||affiliation===("N")||affiliation===("L"))
- {pt1HQ=new SO.Point(symbolBounds.getX()+1,symbolBounds.getY()+symbolBounds.getHeight());pt2HQ=new SO.Point(pt1HQ.getX(),pt1HQ.getY()+symbolBounds.getHeight());}
- else
- {pt1HQ=new SO.Point(symbolBounds.getX()+1,symbolBounds.getY()+(symbolBounds.getHeight()/2));pt2HQ=new SO.Point(pt1HQ.getX(),pt1HQ.getY()+symbolBounds.getHeight());}
- hqBounds=new SO.Rectangle(pt1HQ.getX(),pt1HQ.getY(),2,pt2HQ.getY()-pt1HQ.getY());imageBounds.shiftBR(0,pt2HQ.getY()-imageBounds.getBottom());centerPoint.setLocation(pt2HQ.getX(),pt2HQ.getY());}
- var domPoints=null,domBounds=null;if(modifiers[ModifiersUnits.Q_DIRECTION_OF_MOVEMENT]!==undefined)
- {var q=modifiers[ModifiersUnits.Q_DIRECTION_OF_MOVEMENT];var isY=(modifiers[ModifiersUnits.Y_LOCATION]!==undefined);domPoints=this.createDOMArrowPoints(symbolID,symbolBounds,centerPoint,q,isY);domBounds=new SO.Rectangle(domPoints[0].getX(),domPoints[0].getY(),1,1);var temp=null;for(var i=1;i<6;i++)
- {temp=domPoints[i];if(temp!==null)
- domBounds.unionPoint(temp);}
- imageBounds.union(domBounds);}
- var ociBounds=null;var ociOffset=2;if(mobilityBounds!==null)
- {ociOffset=Math.round(mobilityBounds.bottom-symbolBounds.bottom)+2;}
- var ociShape=this.processOperationalConditionIndicator(symbolID,symbolBounds,ociOffset);if(ociShape!==null)
- {ociBounds=ociShape.getBounds();}
- imageBounds.union(ociBounds);if(imageBounds.getX()<0||imageBounds.getY()<0)
- {var shiftX=Math.abs(imageBounds.getX()),shiftY=Math.abs(imageBounds.getY());if(hqBounds!==null)
- {pt1HQ.shift(shiftX,shiftY);pt2HQ.shift(shiftX,shiftY);}
- if(echelonBounds!==null)
- {tiEchelon.setLocation(tiEchelon.getLocation().getX()+shiftX,tiEchelon.getLocation().getY()+shiftY);}
- if(amBounds)
- {tiAM.setLocation(tiAM.getLocation().getX()+shiftX,tiAM.getLocation().getY()+shiftY);}
- if(tfBounds!==null)
- {tfRectangle.shift(shiftX,shiftY);tfBounds.shift(shiftX,shiftY);}
- if(instBounds!==null)
- {instRectangle.shift(shiftX,shiftY);instBounds.shift(shiftX,shiftY);}
- if(fdiBounds!==null)
- {fdiBounds.shift(shiftX,shiftY);fdiLeft.shift(shiftX,shiftY);fdiTop.shift(shiftX,shiftY);fdiRight.shift(shiftX,shiftY);}
- if(ociBounds!==null)
- {ociBounds.shift(shiftX,shiftY);ociShape.shift(shiftX,shiftY);}
- if(domBounds!==null)
- {for(var i=0;i<6;i++)
- {temp=domPoints[i];if(temp!==null)
- temp.shift(shiftX,shiftY);}
- domBounds.shift(shiftX,shiftY);}
- if(mobilityBounds!==null)
- {var size=shapes.length;var tempShape=null;for(var i=0;i<size;i++)
- {tempShape=shapes[i];tempShape.shift(shiftX,shiftY);}
- mobilityBounds.shift(shiftX,shiftY);}
- centerPoint.shift(shiftX,shiftY);symbolBounds.shift(shiftX,shiftY);imageBounds.shift(shiftX,shiftY);}
- if(render===true)
- {buffer=this.createBuffer(imageBounds.getWidth(),imageBounds.getHeight());ctx=buffer.getContext('2d');if(echelonBounds||amBounds)
- {ctx.font=RendererSettings.getModifierFont();}
- if(hqBounds!==null)
- {ctx.beginPath();ctx.moveTo(pt1HQ.getX(),pt1HQ.getY());ctx.lineTo(pt2HQ.getX(),pt2HQ.getY());ctx.lineWidth=2;ctx.strokStyle='#000000';ctx.stroke();}
- if(tfBounds!==null)
- {ctx.lineWidth=2;ctx.strokeStyle="#000000";ctx.strokeRect(tfRectangle.getX(),tfRectangle.getY(),tfRectangle.getWidth(),tfRectangle.getHeight());}
- if(instBounds!==null)
- {ctx.lineWidth=2;ctx.fillStyle="#000000";ctx.fillRect(instRectangle.getX(),instRectangle.getY(),instRectangle.getWidth(),instRectangle.getHeight());}
- if(echelonBounds!==null)
- {this.renderText(ctx,[tiEchelon]);echelonBounds=null;tiEchelon=null;}
- if(amBounds!==null)
- {this.renderText(ctx,[tiAM]);amBounds=null;tiAM=null;}
- if(fdiBounds!==null)
- {var oldDash=null;if(!ctx.setLineDash){ctx.setLineDash=function(){};}
- if(!ctx.getLineDash){ctx.getLineDash=function(){};}
- oldDash=ctx.getLineDash();if(symbolBounds.getWidth()>19)
- {ctx.setLineDash([6,4]);}
- else
- {ctx.setLineDash([5,3]);}
- ctx.lineCap="butt";ctx.lineJoin="miter";ctx.strokeStyle="#000000";ctx.lineWidth=2;ctx.beginPath();ctx.moveTo(fdiLeft.getX(),fdiLeft.getY());ctx.lineTo(fdiTop.getX(),fdiTop.getY());ctx.lineTo(fdiRight.getX(),fdiRight.getY());ctx.stroke();ctx.setLineDash(oldDash);fdiBounds=null;}
- if(mobilityBounds!==null)
- {if(symbolID.charAt(10)===("M"))
- {ctx.lineWidth=2;ctx.strokeStyle="#000000";ctx.fillStyle="#000000";}
- else
- {ctx.lineWidth=1;ctx.strokeStyle="#000000";ctx.fillStyle="#000000";}
- var size=shapes.length;var tempShape=null;for(var i=0;i<size;i++)
- {tempShape=shapes[i];if(tempShape.getShapeType()!==SO.ShapeTypes.RECTANGLE)
- {tempShape.stroke(ctx);}
- else
- {tempShape.fill(ctx);}}
- mobilityBounds=null;shapes=null;tempShape=null;}
- if(ociBounds!==null)
- {var statusColor=null;var status=symbolID.charAt(3);if(status===("C"))
- statusColor='#00FF00';else if(status===("D"))
- statusColor='#FFFF00';else if(status===("X"))
- statusColor='#FF0000';else if(status===("F"))
- statusColor='#0000FF';ctx.lineWidth=2;ctx.strokeStyle='#000000';ociShape.stroke(ctx);ctx.fillStyle=statusColor;ociShape.fill(ctx);ociBounds=null;ociShape=null;}
- ctx.drawImage(ii.getImage(),0,0,symbolBounds.getWidth(),symbolBounds.getHeight(),symbolBounds.getX(),symbolBounds.getY(),symbolBounds.getWidth(),symbolBounds.getHeight());if(domBounds!==null)
- {ctx.lineWidth=2;ctx.lineCap="butt";ctx.lineJoin="miter";ctx.strokeStyle="#000000";ctx.beginPath();ctx.moveTo(domPoints[0].getX(),domPoints[0].getY());if(domPoints[1]!==null)
- ctx.lineTo(domPoints[1].getX(),domPoints[1].getY());if(domPoints[2]!==null)
- ctx.lineTo(domPoints[2].getX(),domPoints[2].getY());ctx.stroke();ctx.beginPath();ctx.fillStyle="#000000";ctx.moveTo(domPoints[3].getX(),domPoints[3].getY());ctx.lineTo(domPoints[4].getX(),domPoints[4].getY());ctx.lineTo(domPoints[5].getX(),domPoints[5].getY());ctx.closePath();ctx.fill();domBounds=null;domPoints=null;}}
- newii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);shapes=null;ctx=null;buffer=null;if(newii!==null)
- {return newii;}
- else
- {return null;}},processOperationalConditionIndicator:function(symbolID,symbolBounds,offsetY){var bar=null,status,statusColor,barSize=0,pixelSize=symbolBounds.getHeight();status=symbolID.charAt(3);if(_statusColorMap[status]!==undefined)
- statusColor=_statusColorMap[status];else
- statusColor=null;if(statusColor!==null)
- {if(pixelSize>0)
- barSize=Math.round(pixelSize/5);if(barSize<2)
- barSize=2;offsetY+=Math.round(symbolBounds.getY()+symbolBounds.getHeight());bar=new SO.Rectangle(symbolBounds.getX()+1,offsetY,Math.round(symbolBounds.getWidth())-2,barSize);}
- return bar;},processUnitModifiers:function(ii,symbolID,modifiers){var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];var bufferXL=5,bufferXR=5,bufferY=2,bufferText=2,x=0,y=0,cpofNameX=0,newii=null;var tiArray=new Array(),descent=RendererUtilities.getFontDescent(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle(),"TQgj"),bounds=null,labelBounds=null,labelWidth,labelHeight;var bounds=ii.getSymbolBounds().clone(),symbolBounds=ii.getSymbolBounds().clone(),centerPoint=ii.getCenterPoint(),imageBounds=ii.getImageBounds().clone(),imageBoundsOld=ii.getImageBounds().clone();var echelon=SymbolUtilities.getEchelon(symbolID),echelonText=SymbolUtilities.getEchelonText(echelon),amText=SymbolUtilities.getUnitAffiliationModifier(symbolID,symStd);if(modifiers.Q===undefined)
- {bounds=new SO.Rectangle(imageBounds.getX(),symbolBounds.getY(),imageBounds.getWidth(),symbolBounds.getHeight());}
- else
- {if(echelonText!==null||amText!==null)
- {bounds=new SO.Rectangle(imageBounds.getX(),bounds.getY(),imageBounds.getWidth(),bounds.getHeight());}
- else if(symbolID.substring(10,12)==="MR")
- {x=-(Math.round((symbolBounds.getWidth()-1)/7)*2);if(x<bounds.x)
- bounds.shiftTL(x,0);}}
- this.checkModifierFont();cpofNameX=bounds.x+bounds.width+bufferXR;var byLabelHeight=false;labelHeight=RendererUtilities.measureTextHeight(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle()).fullHeight;var maxHeight=(bounds.height);if((labelHeight*3)>maxHeight)
- byLabelHeight=true;var symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard();var affiliationModifier=null;if(RendererSettings.getDrawAffiliationModifierAsLabel())
- {affiliationModifier=SymbolUtilities.getUnitAffiliationModifier(symbolID,symStd);}
- if(affiliationModifier!==null)
- {modifiers[ModifiersUnits.E_FRAME_SHAPE_MODIFIER]=affiliationModifier;}
- if(SymbolUtilities.hasValidCountryCode(symbolID))
- {modifiers[ModifiersUnits.CC_COUNTRY_CODE]=symbolID.substring(12,14);}
- var modifierValue=null;var tiTemp=null;if(modifiers.C!==undefined&&SymbolUtilities.canUnitHaveModifier(symbolID,ModifiersUnits.C_QUANTITY))
- {var text=modifiers[ModifiersUnits.C_QUANTITY];tiTemp=new TextInfo(text,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=Math.round((symbolBounds.x+(symbolBounds.width*0.5))-(labelWidth*0.5));y=Math.round(symbolBounds.y-bufferY-descent);tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.X!==undefined||modifiers.Y!==undefined)
- {modifierValue=null;var xm=null,ym=null;if(modifiers.X!==undefined)
- xm=modifiers.X;if(modifiers.Y!==undefined)
- ym=modifiers.Y;if(xm===null&&ym!==null)
- modifierValue=ym;else if(xm!==null&&ym===null)
- modifierValue=xm;else if(xm!==null&&ym!==null)
- modifierValue=xm+" "+ym;tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();if(!byLabelHeight)
- {x=bounds.x-labelBounds.width-bufferXL;y=bounds.y+labelHeight-descent;}
- else
- {x=bounds.x-labelBounds.width-bufferXL;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y-((labelHeight+bufferText));y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.G!==undefined&&modifiers.G!==null)
- {modifierValue=modifiers.G;tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();if(!byLabelHeight)
- {x=bounds.x+bounds.width+bufferXR;y=bounds.y+labelHeight-descent;}
- else
- {x=bounds.x+bounds.width+bufferXR;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y-((labelHeight+bufferText));y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);if((x+labelWidth+3)>cpofNameX)
- cpofNameX=x+labelWidth+3;}
- if(modifiers.V!==undefined)
- {modifierValue=modifiers.V;tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=bounds.x-labelBounds.width-bufferXL;y=(bounds.height);y=((y*0.5)+((labelHeight-descent)*0.5));y=bounds.y+y;tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.H!==undefined)
- {modifierValue=modifiers.H;tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=bounds.x+bounds.width+bufferXR;y=(bounds.height);y=((y*0.5)+((labelHeight-descent)*0.5));y=bounds.y+y;tiTemp.setLocation(x,y);tiArray.push(tiTemp);if((x+labelWidth+3)>cpofNameX)
- cpofNameX=x+labelWidth+3;}
- if(modifiers.T!==undefined)
- {modifierValue=modifiers[ModifiersUnits.T_UNIQUE_DESIGNATION_1];tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();if(!byLabelHeight)
- {x=bounds.x-labelWidth-bufferXL;y=bounds.y+bounds.height;}
- else
- {x=bounds.x-labelWidth-bufferXL;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y+((labelHeight+bufferText));y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.M!==undefined||modifiers.CC!==undefined)
- {modifierValue="";if(modifiers[ModifiersUnits.M_HIGHER_FORMATION])
- modifierValue+=modifiers[ModifiersUnits.M_HIGHER_FORMATION];if(modifiers[ModifiersUnits.CC_COUNTRY_CODE])
- {if(modifiers[ModifiersUnits.M_HIGHER_FORMATION])
- modifierValue+=" ";modifierValue+=modifiers[ModifiersUnits.CC_COUNTRY_CODE];}
- tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=bounds.x+bounds.width+bufferXR;if(!byLabelHeight)
- y=bounds.y+bounds.height;else
- {y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y+((labelHeight+bufferText));y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);if((x+labelWidth+3)>cpofNameX)
- cpofNameX=x+labelWidth+3;}
- if(modifiers.Z!==undefined)
- {modifierValue=modifiers[ModifiersUnits.Z_SPEED];tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=bounds.x-labelWidth-bufferXL;if(!byLabelHeight)
- y=Math.round(bounds.y+bounds.height+labelHeight+bufferText);else
- {y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y+((labelHeight+bufferText)*2);y=Math.round(bounds.y+y);}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.J!==undefined||modifiers.K!==undefined||modifiers.L!==undefined||modifiers.N!==undefined||modifiers.P!==undefined)
- {modifierValue=null;var jm=null,km=null,lm=null,nm=null,pm=null;if(modifiers.J!==undefined)
- jm=modifiers[ModifiersUnits.J_EVALUATION_RATING];if(modifiers.K!==undefined)
- km=modifiers[ModifiersUnits.K_COMBAT_EFFECTIVENESS];if(modifiers.L!==undefined)
- lm=modifiers[ModifiersUnits.L_SIGNATURE_EQUIP];if(modifiers.N!==undefined)
- nm=modifiers[ModifiersUnits.N_HOSTILE];if(modifiers.P!==undefined)
- pm=modifiers[ModifiersUnits.P_IFF_SIF];modifierValue="";if(jm!==null&&jm!==(""))
- modifierValue=modifierValue+jm;if(km!==null&&km!==(""))
- modifierValue=modifierValue+" "+km;if(lm!==null&&lm!==(""))
- modifierValue=modifierValue+" "+lm;if(nm!==null&&nm!==(""))
- modifierValue=modifierValue+" "+nm;if(pm!==null&&pm!==(""))
- modifierValue=modifierValue+" "+pm;if(modifierValue.charAt(0)===" ")
- modifierValue=modifierValue.substring(1);tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=bounds.x+bounds.width+bufferXR;if(!byLabelHeight)
- y=Math.round(bounds.y+bounds.height+labelHeight+bufferText);else
- {y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y+((labelHeight+bufferText)*2);y=Math.round(bounds.y+y);}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);if((x+labelWidth+3)>cpofNameX)
- cpofNameX=x+labelWidth+3;}
- if(modifiers.W!==undefined)
- {modifierValue=modifiers[ModifiersUnits.W_DTG_1];tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();if(!byLabelHeight)
- {x=bounds.x-labelWidth-bufferXL;y=bounds.y-bufferY-descent;}
- else
- {x=bounds.x-labelWidth-bufferXL;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y-((labelHeight+bufferText)*2);y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.F!==undefined||modifiers.E!==undefined)
- {modifierValue=null;var E=null,F=null;if(modifiers.E!==undefined)
- E=modifiers[ModifiersUnits.E_FRAME_SHAPE_MODIFIER];if(modifiers.F!==undefined)
- F=modifiers[ModifiersUnits.F_REINFORCED_REDUCED];if(E!==null&&E!==(""))
- modifierValue=E;if(F!==null&&F!==(""))
- {if(F.toUpperCase()===("R"))
- F="(+)";else if(F.toUpperCase()===("D"))
- F="(-)";else if(F.toUpperCase()===("RD"))
- F="("+String.fromCharCode(177)+")";else
- F=null;}
- if(F!==null&&F!==(""))
- {if(modifierValue!==null&&modifierValue!==(""))
- modifierValue=modifierValue+" "+F;else
- modifierValue=F;}
- tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();if(!byLabelHeight)
- {x=bounds.x+bounds.width+bufferXR;y=bounds.y-bufferY-descent;}
- else
- {x=bounds.x+bounds.width+bufferXR;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=y-((labelHeight+bufferText)*2);y=bounds.y+y;}
- tiTemp.setLocation(x,y);tiArray.push(tiTemp);if((x+labelWidth+3)>cpofNameX)
- cpofNameX=x+labelWidth+3;}
- if(modifiers.AA!==undefined)
- {modifierValue=modifiers[ModifiersUnits.AA_SPECIAL_C2_HQ];tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=(symbolBounds.x+(symbolBounds.width*0.5))-(labelWidth*0.5);y=(symbolBounds.height);y=((y*0.5)+((labelHeight-descent)*0.5));y=symbolBounds.y+y;tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- if(modifiers.CN!==undefined)
- {modifierValue=modifiers[ModifiersUnits.CN_CPOF_NAME_LABEL];tiTemp=new TextInfo(modifierValue,0,0,textInfoContext,textInfoContextFont);labelBounds=tiTemp.getTextBounds();labelWidth=labelBounds.getWidth();x=cpofNameX;y=(bounds.height);y=((y*0.5)+(labelHeight*0.5));y=bounds.y+y;tiTemp.setLocation(x,y);tiArray.push(tiTemp);}
- var modifierBounds=null;if(tiArray!==null&&tiArray.length>0)
- {modifierBounds=tiArray[0].getTextOutlineBounds();var size=tiArray.length;var tempShape=null;for(var i=1;i<size;i++)
- {tempShape=tiArray[i];modifierBounds.union(tempShape.getTextOutlineBounds());}}
- if(modifierBounds!==null){imageBounds.union(modifierBounds);if(imageBounds.getX()<0||imageBounds.getY()<0)
- {var shiftX=Math.round(Math.abs(imageBounds.getX())),shiftY=Math.round(Math.abs(imageBounds.getY()));var size=tiArray.length;var tempShape=null;for(var i=0;i<size;i++)
- {tempShape=tiArray[i];tempShape.shift(shiftX,shiftY);}
- modifierBounds.shift(shiftX,shiftY);centerPoint.shift(shiftX,shiftY);symbolBounds.shift(shiftX,shiftY);imageBounds.shift(shiftX,shiftY);imageBoundsOld.shift(shiftX,shiftY);}
- if(render===true)
- {var buffer=this.createBuffer(imageBounds.getWidth(),imageBounds.getHeight());var ctx=buffer.getContext('2d');ctx.drawImage(ii.getImage(),imageBoundsOld.getX(),imageBoundsOld.getY());this.renderText(ctx,tiArray);}
- newii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);}
- tiArray=null;tiTemp=null;tempShape=null;imageBoundsOld=null;ctx=null;buffer=null;return newii;},renderSPTG:function(symbolID,modifiers){var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];if(_bufferSymbol===null)
- {_bufferSymbol=this.createBuffer(_bufferSymbolSize,_bufferSymbolSize);ctx=_bufferSymbol.getContext('2d');ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=3;}
- var fontSize=60;var pixel=null;var basicID=SymbolUtilities.getBasicSymbolID(symbolID);var strSPFont="";var symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard();var keepUnitRatio=true;var intFill=-1;var intFrame=-1;var fillColor=null;var lineColor=SymbolUtilities.getLineColorOfAffiliation(symbolID).toHexString(false);var fill=null;var frame=null;var scale=-999;var hasDisplayModifiers=false;var hasTextModifiers=false;var symbolOutlineWidth=RendererSettings.getSinglePointSymbolOutlineWidth();var buffer=null,ctx=null;var pixelSize=-1;if(modifiers[MilStdAttributes.PixelSize])
- {pixelSize=modifiers[MilStdAttributes.PixelSize];}
- else
- {pixelSize=RendererSettings.getDefaultPixelSize();}
- if(modifiers[MilStdAttributes.KeepUnitRatio]!==undefined)
- {keepUnitRatio=modifiers[MilStdAttributes.KeepUnitRatio];}
- var icon=false;if(modifiers[MilStdAttributes.Icon]!==undefined)
- {icon=modifiers[MilStdAttributes.Icon];}
- if(icon)
- {keepUnitRatio=false;hasDisplayModifiers=false;hasTextModifiers=false;symbolOutlineWidth=0;}
- else
- {hasDisplayModifiers=this.hasDisplayModifiers(symbolID,modifiers);hasTextModifiers=this.hasTextModifiers(symbolID,modifiers);}
- if(modifiers[MilStdAttributes.LineColor]!==undefined)
- {lineColor=modifiers[MilStdAttributes.LineColor];}
- if(modifiers[MilStdAttributes.FillColor]!==undefined)
- {fillColor=modifiers[MilStdAttributes.FillColor];}
- var outlineOffset=symbolOutlineWidth;if(outlineOffset>2)
- outlineOffset=(outlineOffset-1)/2;else
- outlineOffset=0;var spli=SinglePointLookup.getSPLookupInfo(symbolID,symStd);if(spli===null)
- {if(modifiers===null)
- modifiers={};if(modifiers.H!==undefined)
- modifiers[ModifiersTG.H1_ADDITIONAL_INFO_2]=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];modifiers[ModifiersTG.H_ADDITIONAL_INFO_1]=symbolID.substring(0,10);symbolID="G"+SymbolUtilities.getAffiliation(symbolID)+"G"+SymbolUtilities.getStatus(symbolID)+"GPP---****X";spli=SinglePointLookup.getSPLookupInfo(symbolID,symStd);}
- if(symbolID.charAt(1).toUpperCase()==="H")
- {modifiers[ModifiersTG.N_HOSTILE]="ENY";}
- var symbolBounds=null,rect=null;var ratio=1;if(pixelSize>0)
- {symbolBounds=SymbolDimensions.getSymbolBounds(symbolID,symStd,fontSize);rect=SymbolDimensions.getSymbolBounds(symbolID,symStd,fontSize);if(keepUnitRatio===true)
- {if(fontSize===80)
- {scale=pixelSize/35.0;}
- else if(fontSize===60)
- {scale=pixelSize/35.0;}
- else if(fontSize===100)
- {scale=pixelSize/35.0;}
- else if(fontSize===120)
- {scale=pixelSize/35.0;}
- else
- {scale=pixelSize/35.0;}}
- ratio=Math.min((pixelSize/rect.getHeight()),(pixelSize/rect.getWidth()));}
- if(scale!==-999)
- {ratio=scale;}
- if(ratio>0)
- {fontSize=fontSize*ratio;}
- if(pixelSize>0)
- {symbolBounds=SymbolDimensions.getSymbolBounds(symbolID,symStd,fontSize);fontSize=(((fontSize)/96)*72);strSPFont=fontSize+"pt SinglePoint";}
- else
- {symbolBounds=SymbolDimensions.getSymbolBounds(symbolID,symStd,fontSize);fontSize=((fontSize/96)*72);strSPFont=fontSize+"pt SinglePoint";}
- this.checkModifierFont();intFrame=SinglePointLookup.getCharCodeFromSymbol(symbolID,symStd);var fillID=null;if(SymbolUtilities.hasDefaultFill(symbolID)&&fillColor===null)
- {fillColor=SymbolUtilities.getFillColorOfAffiliation(symbolID).toHexString(false);}
- if(SymbolUtilities.isTGSPWithFill(symbolID))
- {fillID=SymbolUtilities.getTGFillSymbolCode(symbolID);if(fillID!==null)
- intFill=SinglePointLookup.getCharCodeFromSymbol(fillID,symStd);}
- else if(SymbolUtilities.isWeatherSPWithFill(symbolID))
- {intFill=intFrame+1;fillColor=SymbolUtilities.getFillColorOfWeather(symbolID).toHexString(false);}
- if(intFill>0)
- fill=String.fromCharCode(intFill);frame=String.fromCharCode(intFrame);var symbolWidth=Math.round(symbolBounds.getWidth())+(outlineOffset*2),symbolHeight=Math.round(symbolBounds.getHeight())+(outlineOffset*2);if(render===true)
- {if(hasDisplayModifiers===true||hasTextModifiers===true)
- {buffer=_bufferSymbol;ctx=buffer.getContext('2d');ctx.clearRect(0,0,_bufferSymbolSize,_bufferSymbolSize);}
- else
- {buffer=this.createBuffer(symbolWidth,symbolHeight);ctx=buffer.getContext('2d');ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=3;}
- ctx.font=strSPFont;}
- var x=Math.round(symbolBounds.getWidth()/2),y=Math.round(symbolBounds.getHeight()/2);var centerPoint=SymbolDimensions.getSymbolCenter(symbolID,symbolBounds);x=centerPoint.getX();y=centerPoint.getY();if(outlineOffset>0)
- {x+=outlineOffset;y+=outlineOffset;symbolBounds.shift(outlineOffset,outlineOffset);symbolBounds.grow(outlineOffset);}
- if(render===true)
- {if(frame!==null&&frame!=="")
- {if(outlineOffset>0)
- {ctx.lineWidth=symbolOutlineWidth;ctx.strokeStyle=RendererUtilities.getIdealOutlineColor(lineColor);ctx.strokeText(frame,x,y);}}
- if(fill!==null&&fill!==""&&fillColor!==null)
- {ctx.fillStyle=fillColor;ctx.fillText(fill,x,y);}
- if(frame!==null&&frame!=="")
- {ctx.fillStyle=lineColor;ctx.fillText(frame,x,y);}}
- var imageBounds=new SO.Rectangle(0,0,symbolWidth,symbolHeight);var ii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);var iiNew=null;if(icon===false&&(hasTextModifiers||hasDisplayModifiers||SymbolUtilities.isTGSPWithIntegralText(symbolID)))
- {if(SymbolUtilities.isTGSPWithSpecialModifierLayout(symbolID)||SymbolUtilities.isTGSPWithIntegralText(symbolID))
- {iiNew=this.ProcessTGSPWithSpecialModifierLayout(ii,symbolID,modifiers);}
- else
- {iiNew=this.ProcessTGSPModifiers(ii,symbolID,modifiers);}}
- if(iiNew)
- ii=iiNew;ctx=null;buffer=null;if(icon)
- return ii.getSquareImageInfo();else
- return ii;},ProcessTGSPWithSpecialModifierLayout:function(ii,symbolID,modifiers){var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];var bufferXL=6,bufferXR=4,bufferY=2,bufferText=2,centerOffset=1,x=0,y=0,x2=0,y2=0,symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard(),outlineOffset=RendererSettings.getTextOutlineWidth(),labelHeight=0,labelWidth=0,newii=null;var arrMods=new Array();var duplicate=false;var symbolBounds=ii.getSymbolBounds().clone(),bounds=ii.getSymbolBounds().clone(),imageBounds=ii.getImageBounds().clone(),centerPoint=ii.getCenterPoint().clone();centerPoint=new SO.Point(Math.round(ii.getCenterPoint().getX()),Math.round(ii.getCenterPoint().getY()));var byLabelHeight=false;labelHeight=RendererUtilities.measureTextHeight(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle()).fullHeight;labelHeight=Math.round(labelHeight);var maxHeight=(symbolBounds.getHeight());if((labelHeight*3)>maxHeight)
- byLabelHeight=true;var descent=RendererUtilities.getFontDescent(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle(),"TQgj");var yForY=-1;var labelBounds1=null,labelBounds2=null,strText="",strText1="",strText2="",text1=null,text2=null;var basicID=SymbolUtilities.getBasicSymbolID(symbolID);if(outlineOffset>2)
- outlineOffset=((outlineOffset-1)/2);else
- outlineOffset=0;if(basicID===("G*G*GPRD--****X"))
- {strText1="D";text1=new TextInfo(strText1,0,0,textInfoContext);labelBounds1=text1.getTextBounds();if(symStd===RendererSettings.Symbology_2525Bch2_USAS_13_14)
- {y=symbolBounds.getY()+symbolBounds.getHeight();x=symbolBounds.getX()-labelBounds1.getWidth()-bufferXL;text1.setLocation(Math.round(x),Math.round(y));}
- else
- {text1=null;}}
- else if(basicID===("G*G*APU---****X"))
- {strText1="PUP";text1=new TextInfo(strText1,0,0,textInfoContext);labelBounds1=text1.getTextBounds();y=symbolBounds.getCenterY()+((labelBounds1.getHeight()-descent)/2);x=symbolBounds.getX()+symbolBounds.getWidth()+bufferXR;text1.setLocation(Math.round(x),Math.round(y));}
- else if(basicID===("G*M*NZ----****X"))
- {}
- else if(basicID===("G*M*NF----****X"))
- {}
- else if(basicID===("G*M*NEB---****X"))
- {var offset=1;strText2="BIO";text2=new TextInfo(strText2,0,0,textInfoContext);labelBounds2=text2.getTextBounds();y2=symbolBounds.getCenterY()+((labelBounds2.getHeight()-descent)*0.5);x2=symbolBounds.getX()-labelBounds2.getWidth()-bufferXL;text2.setLocation(Math.round(x2),Math.round(y2-offset));}
- else if(basicID===("G*M*NEC---****X"))
- {var offset=1;strText2="CML";text2=new TextInfo(strText2,0,0,textInfoContext);labelBounds2=text2.getTextBounds();y2=symbolBounds.getCenterY()+((labelBounds2.getHeight()-descent)/2);x2=symbolBounds.getX()-labelBounds2.getWidth()-bufferXL;text2.setLocation(Math.round(x2),Math.round(y2-offset));}
- if(text1!==null)
- {arrMods.push(text1);}
- if(text2!==null)
- {arrMods.push(text2);}
- var ti=null;if(basicID===("G*M*NZ----****X")||basicID===("G*M*NEB---****X")||basicID===("G*M*NEC---****X"))
- {if((labelHeight*3)>bounds.getHeight())
- byLabelHeight=true;}
- if(basicID===("G*G*GPH---****X")||basicID===("G*G*GPPC--****X")||basicID===("G*G*GPPD--****X"))
- {if(modifiers.H!==undefined)
- {strText=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y+(bounds.height*0.5);y=y+(labelHeight*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*G*GPRI--****X"))
- {if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y+(bounds.height*0.25);y=y+(labelHeight*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*G*GPPW--****X")||basicID===("G*F*PCF---****X"))
- {if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.x+(bounds.width*0.75);y=bounds.y+(bounds.height*0.5);y=y+((labelHeight-descent)*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*G*APP---****X")||basicID===("G*G*APC---****X"))
- {if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);var labelWidth=ti.getTextBounds().getWidth();x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y+(bounds.height*0.5);y=y+(((bounds.height*0.5)-labelHeight)/2)+labelHeight-descent;ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*G*DPT---****X")||basicID===("G*F*PTS---****X")||basicID===("G*F*PTN---****X"))
- {if(modifiers.H!==undefined&&basicID===("G*F*PTS---****X"))
- {strText=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.getCenterX()+(bounds.width*0.15);y=bounds.y+(bounds.height*0.75);y=y+(labelHeight*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.H1!==undefined&&basicID===("G*F*PTS---****X"))
- {strText=modifiers[ModifiersTG.H1_ADDITIONAL_INFO_2];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.getCenterX()-(bounds.width*0.15);x=x-(labelWidth);y=bounds.y+(bounds.height*0.75);y=y+(labelHeight*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.getCenterX()+(bounds.width*0.15);y=bounds.y+(bounds.height*0.25);y=y+(labelHeight*0.5);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*M*NZ----****X")||basicID===("G*M*NEB---****X")||basicID===("G*M*NEC---****X"))
- {if(modifiers.N!==undefined)
- {strText=modifiers[ModifiersTG.N_HOSTILE];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.x+bounds.width+bufferXR;if(!byLabelHeight)
- {y=bounds.y+bounds.height;}
- else
- {y=bounds.y+((bounds.height*0.5)+((labelHeight-descent)*0.5)+(labelHeight-descent+bufferText));}
- ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.H!==undefined)
- {strText=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.x+bounds.width+bufferXR;if(!byLabelHeight)
- {y=bounds.y+labelHeight-descent;}
- else
- {y=bounds.y+((bounds.height*0.5)-((labelHeight-descent)*0.5)+(-descent-bufferText));}
- ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.W!==undefined)
- {strText=modifiers[ModifiersTG.W_DTG_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x-labelWidth-bufferXL;if(!byLabelHeight)
- {y=bounds.y+labelHeight-descent;}
- else
- {y=bounds.y+((bounds.height*0.5)-((labelHeight-descent)*0.5)+(-descent-bufferText));}
- ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.V!==undefined&&basicID===("G*M*NZ----****X"))
- {strText=modifiers[ModifiersTG.V_EQUIP_TYPE];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x-labelWidth-bufferXL;y=bounds.y+((bounds.height*0.5)+((labelHeight-descent)*0.5));ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x-labelWidth-bufferXL;if(!byLabelHeight)
- {y=bounds.y+bounds.height;}
- else
- {y=bounds.y+((bounds.height*0.5)+((labelHeight-descent)*0.5)+(labelHeight-descent+bufferText));}
- ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.Y!==undefined)
- {strText=modifiers[ModifiersTG.Y_LOCATION];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);if(!byLabelHeight)
- {y=bounds.y+bounds.height+labelHeight-descent+bufferY;}
- else
- {y=bounds.y+((bounds.height*0.5)+((labelHeight-descent)*0.5)+((labelHeight+bufferText)*2)-descent);}
- yForY=y+descent;ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.C!==undefined)
- {strText=modifiers[ModifiersTG.C_QUANTITY];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y-descent;ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}}
- else if(basicID===("G*M*OFS---****X"))
- {if(modifiers.H!==undefined)
- {strText=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y-descent;ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.W!==undefined)
- {strText=modifiers[ModifiersTG.W_DTG_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y+(bounds.height);y=y+(labelHeight);ti.setLocation(Math.round(x),Math.round(y));arrMods.push(ti);}
- if(modifiers.N!==undefined)
- {strText=modifiers[ModifiersTG.N_HOSTILE];ti=new TextInfo(strText,0,0,textInfoContext);var ti2=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width)+bufferXR;duplicate=true;x2=bounds.x;x2=x2-labelWidth-bufferXL;y=bounds.y+(bounds.height*0.5);y=y+((labelHeight-descent)*0.5);y2=y;ti.setLocation(Math.round(x),Math.round(y));ti2.setLocation(Math.round(x2),Math.round(y2));arrMods.push(ti);arrMods.push(ti2);}}
- var domPoints=null,domBounds=null;if(modifiers[ModifiersTG.Q_DIRECTION_OF_MOVEMENT]!==undefined&&(basicID===("G*M*NZ----****X")||basicID===("G*M*NEB---****X")||basicID===("G*M*NEC---****X")))
- {var q=modifiers[ModifiersTG.Q_DIRECTION_OF_MOVEMENT];var tempBounds=bounds.clone();tempBounds.unionPoint(new SO.Point(bounds.getCenterX(),yForY));domPoints=this.createDOMArrowPoints(symbolID,tempBounds,ii.getCenterPoint(),q,false);domBounds=new SO.Rectangle(domPoints[0].getX(),domPoints[0].getY(),1,1);var temp=null;for(var i=1;i<6;i++)
- {temp=domPoints[i];if(temp!==null)
- domBounds.unionPoint(temp);}
- imageBounds.union(domBounds);}
- var modifierBounds=null;if(arrMods!==null&&arrMods.length>0)
- {modifierBounds=arrMods[0].getTextOutlineBounds();var size=arrMods.length;var tempShape=null;for(var i=1;i<size;i++)
- {tempShape=arrMods[i];modifierBounds.union(tempShape.getTextOutlineBounds());}}
- if(modifierBounds!==null||domBounds!==null){imageBounds.union(modifierBounds);imageBounds.union(domBounds);if(imageBounds.getX()<0||imageBounds.getY()<0)
- {var shiftX=Math.abs(imageBounds.getX()),shiftY=Math.abs(imageBounds.getY());var size=arrMods.length;var tempShape=null;for(var i=0;i<size;i++)
- {tempShape=arrMods[i];tempShape.shift(shiftX,shiftY);}
- modifierBounds.shift(shiftX,shiftY);if(domBounds!==null)
- {for(var i=0;i<6;i++)
- {temp=domPoints[i];if(temp!==null)
- temp.shift(shiftX,shiftY);}
- domBounds.shift(shiftX,shiftY);}
- centerPoint.shift(shiftX,shiftY);symbolBounds.shift(shiftX,shiftY);imageBounds.shift(shiftX,shiftY);}
- if(render===true)
- {var buffer=this.createBuffer(imageBounds.getWidth(),imageBounds.getHeight());var ctx=buffer.getContext('2d');ctx.drawImage(ii.getImage(),0,0,symbolBounds.getWidth(),symbolBounds.getHeight(),symbolBounds.getX(),symbolBounds.getY(),symbolBounds.getWidth(),symbolBounds.getHeight());this.renderText(ctx,arrMods);if(domBounds!==null)
- {ctx.lineWidth=2;ctx.lineCap="butt";ctx.lineJoin="miter";ctx.strokeStyle="#000000";ctx.beginPath();ctx.moveTo(domPoints[0].getX(),domPoints[0].getY());if(domPoints[1]!==null)
- ctx.lineTo(domPoints[1].getX(),domPoints[1].getY());if(domPoints[2]!==null)
- ctx.lineTo(domPoints[2].getX(),domPoints[2].getY());ctx.stroke();ctx.beginPath();ctx.fillStyle="#000000";ctx.moveTo(domPoints[3].getX(),domPoints[3].getY());ctx.lineTo(domPoints[4].getX(),domPoints[4].getY());ctx.lineTo(domPoints[5].getX(),domPoints[5].getY());ctx.closePath();ctx.fill();}}
- newii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);ctx=null;buffer=null;if(newii!==undefined&&newii!==null)
- return newii;}
- else
- return null;},ProcessTGSPModifiers:function(ii,symbolID,modifiers){var render=true;if(modifiers["RENDER"]!==undefined)
- render=modifiers["RENDER"];var bufferXL=6,bufferXR=4,bufferY=2,bufferText=2,centerOffset=1,x=0,y=0,x2=0,y2=0,symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard(),outlineOffset=RendererSettings.getTextOutlineWidth(),labelHeight=0,labelWidth=0,newii=null;var arrMods=new Array();var duplicate=false;var symbolBounds=ii.getSymbolBounds().clone(),bounds=ii.getSymbolBounds().clone(),imageBounds=ii.getImageBounds().clone(),centerPoint=ii.getCenterPoint().clone();centerPoint=new SO.Point(Math.round(ii.getCenterPoint().getX()),Math.round(ii.getCenterPoint().getY()));var byLabelHeight=false;labelHeight=RendererUtilities.measureTextHeight(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle()).fullHeight;labelHeight=Math.round(labelHeight);var maxHeight=(symbolBounds.getHeight());if((labelHeight*3)>maxHeight)
- byLabelHeight=true;var descent=RendererUtilities.getFontDescent(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle(),"TQgj");var yForY=-1;var labelBounds1=null,labelBounds2=null,strText="",strText1="",strText2="",text1=null,text2=null;var basicID=SymbolUtilities.getBasicSymbolID(symbolID);if(outlineOffset>2)
- outlineOffset=((outlineOffset-1)/2);else
- outlineOffset=0;var ti=null;{if(modifiers.N!==undefined)
- {strText=modifiers[ModifiersTG.N_HOSTILE];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.x+bounds.width+bufferXR;if(!byLabelHeight)
- {y=((bounds.height/3)*2);y=bounds.y+y;}
- else
- {y=bounds.y+bounds.height;}
- ti.setLocation(x,y);arrMods.push(ti);}
- if(modifiers.H!==undefined)
- {strText=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y-descent;ti.setLocation(x,y);arrMods.push(ti);}
- if(modifiers.H1!==undefined)
- {strText=modifiers[ModifiersTG.H1_ADDITIONAL_INFO_2];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=bounds.y+labelHeight+(bounds.height*0.2);ti.setLocation(x,y);arrMods.push(ti);}
- if(modifiers.W!==undefined)
- {strText=modifiers[ModifiersTG.W_DTG_1];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x-labelWidth-bufferXL;y=bounds.y+labelHeight-descent;ti.setLocation(x,y);arrMods.push(ti);}
- if(modifiers.W1!==undefined)
- {strText=modifiers[ModifiersTG.W1_DTG_2];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x-labelWidth-bufferXL;y=((labelHeight-descent+bufferText)*2);y=bounds.y+y;ti.setLocation(x,y);arrMods.push(ti);}
- if(modifiers.T!==undefined)
- {strText=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];ti=new TextInfo(strText,0,0,textInfoContext);x=bounds.x+bounds.width+bufferXR;y=bounds.y+labelHeight-descent;ti.setLocation(x,y);arrMods.push(ti);}
- if((modifiers.T1!==undefined)&&(basicID===("G*O*ES----****X")||basicID===("G*S*PP----****X")||basicID===("G*S*PX----****X")))
- {strText=modifiers[ModifiersTG.T1_UNIQUE_DESIGNATION_2];ti=new TextInfo(strText,0,0,textInfoContext);labelWidth=Math.round(ti.getTextBounds().getWidth());x=bounds.x+(bounds.width*0.5);x=x-(labelWidth*0.5);y=((bounds.height*0.60));y=bounds.y+y;ti.setLocation(x,y);arrMods.push(ti);}}
- var modifierBounds=null;if(arrMods!==null&&arrMods.length>0)
- {modifierBounds=arrMods[0].getTextOutlineBounds();var size=arrMods.length;var tempShape=null;for(var i=1;i<size;i++)
- {tempShape=arrMods[i];modifierBounds.union(tempShape.getTextOutlineBounds());}}
- if(modifierBounds!==null){imageBounds.union(modifierBounds);if(imageBounds.getX()<0||imageBounds.getY()<0)
- {var shiftX=Math.abs(imageBounds.getX()),shiftY=Math.abs(imageBounds.getY());var size=arrMods.length;var tempShape=null;for(var i=0;i<size;i++)
- {tempShape=arrMods[i];tempShape.shift(shiftX,shiftY);}
- modifierBounds.shift(shiftX,shiftY);centerPoint.shift(shiftX,shiftY);symbolBounds.shift(shiftX,shiftY);imageBounds.shift(shiftX,shiftY);}
- if(render===true)
- {var buffer=this.createBuffer(imageBounds.getWidth(),imageBounds.getHeight());var ctx=buffer.getContext('2d');ctx.drawImage(ii.getImage(),0,0,symbolBounds.getWidth(),symbolBounds.getHeight(),symbolBounds.getX(),symbolBounds.getY(),symbolBounds.getWidth(),symbolBounds.getHeight());this.renderText(ctx,arrMods);}
- newii=new ImageInfo(buffer,centerPoint,symbolBounds,imageBounds);ctx=null;buffer=null;return newii;}},createBuffer:function(width,height)
- {var buffer=_document.createElement('canvas');buffer.width=width;buffer.height=height;return buffer;},createDOMArrowPoints:function(symbolID,bounds,center,angle,isY){var arrowPoints=new Array();var pt1=null,pt2=null,pt3=null;var length=40;if(SymbolUtilities.isNBC(symbolID))
- length=Math.round(bounds.getHeight()/2);else
- length=bounds.getHeight();var dx2,dy2,x1,y1,x2,y2;x1=Math.round(center.getX());y1=Math.round(center.getY());pt1=new SO.Point(x1,y1);if(SymbolUtilities.isNBC(symbolID)||(SymbolUtilities.isWarfighting(symbolID)&&symbolID.charAt(2)===("G")))
- {y1=bounds.getY()+bounds.getHeight();pt1=new SO.Point(x1,y1);if(isY===true&&SymbolUtilities.isNBC(symbolID))
- {var yModifierOffset=RendererUtilities.measureTextHeight(RendererSettings.getModifierFontName(),RendererSettings.getModifierFontSize(),RendererSettings.getModifierFontStyle()).fullHeight;yModifierOffset+=RendererSettings.getTextOutlineWidth();pt1.shift(0,yModifierOffset);}
- y1=y1+length;pt2=new SO.Point(x1,y1);}
- angle=angle-90;var radians=0;radians=angle*(Math.PI/180);dx2=x1+(length*Math.cos(radians));dy2=(y1+(length*Math.sin(radians)));x2=Math.round(dx2);y2=Math.round(dy2);var arrowWidth=8.0,theta=0.7,xPoints=new Array(),yPoints=new Array(),vecLine=new Array(),vecLeft=new Array(),fLength,th,ta,baseX,baseY;xPoints[0]=x2;yPoints[0]=y2;vecLine[0]=(xPoints[0]-x1);vecLine[1]=(yPoints[0]-y1);vecLeft[0]=-vecLine[1];vecLeft[1]=vecLine[0];fLength=Math.sqrt(vecLine[0]*vecLine[0]+vecLine[1]*vecLine[1]);th=arrowWidth/(2.0*fLength);ta=arrowWidth/(2.0*(Math.tan(theta)/2.0)*fLength);baseX=(xPoints[0]-ta*vecLine[0]);baseY=(yPoints[0]-ta*vecLine[1]);xPoints[1]=Math.round(baseX+th*vecLeft[0]);yPoints[1]=Math.round(baseY+th*vecLeft[1]);xPoints[2]=Math.round(baseX-th*vecLeft[0]);yPoints[2]=Math.round(baseY-th*vecLeft[1]);pt3=new SO.Point(Math.round(baseX),Math.round(baseY));arrowPoints[0]=pt1;arrowPoints[1]=pt2;arrowPoints[2]=pt3;arrowPoints[3]=new SO.Point(xPoints[0],yPoints[0]);arrowPoints[4]=new SO.Point(xPoints[1],yPoints[1]);arrowPoints[5]=new SO.Point(xPoints[2],yPoints[2]);return arrowPoints;},hasDisplayModifiers:function(symbolID,modifiers)
- {var scheme=symbolID.charAt(0);var status=symbolID.charAt(3);if(scheme!=="G"&&scheme!=="W")
- {switch(status)
- {case"C":case"D":case"X":case"F":return true;break;}}
- if((symbolID.substring(10,12)==="--"||symbolID.substring(10,12)==="**")&&modifiers[ModifiersUnits.Q_DIRECTION_OF_MOVEMENT]===undefined)
- {return false;}
- else
- return true;},hasTextModifiers:function(symbolID,modifiers)
- {var scheme=symbolID.charAt(0);if(scheme==="W")
- return false;if(scheme==="G")
- {var len=_tgTextModifierKeys.length;for(var i=0;i<len;i++)
- {if(modifiers[_tgTextModifierKeys[i]]!==undefined)
- return true;}}
- else
- {var symStd=modifiers[MilStdAttributes.SymbologyStandard]||RendererSettings.getSymbologyStandard();if(SymbolUtilities.getUnitAffiliationModifier(symbolID,symStd)!==null)
- return true;if(SymbolUtilities.hasValidCountryCode(symbolID))
- return true;var len=_unitTextModifierKeys.length;for(var j=0;j<len;j++)
- {if(modifiers[_unitTextModifierKeys[j]]!==undefined)
- return true;}}
- return false;},renderText:function(ctx,tiArray)
- {ctx.lineCap="butt";ctx.lineJoin="miter";ctx.miterLimit=3;ctx.strokeStyle=RendererUtilities.getIdealOutlineColor(ctx.fillStyle);ctx.font=RendererSettings.getModifierFont();var size=tiArray.length,tempShape=null,fillStyle="#000000",tbm=RendererSettings.getTextBackgroundMethod(),outlineWidth=RendererSettings.getTextOutlineWidth();if(RendererSettings.getLabelForegroundColor()!==null)
- fillStyle=RendererSettings.getLabelForegroundColor().toHexString(false);var outlineStyle=RendererUtilities.getIdealOutlineColor(fillStyle);if(tbm===RendererSettings.TextBackgroundMethod_OUTLINE_QUICK)
- {if(outlineWidth>0)
- {ctx.lineWidth=RendererSettings.getTextOutlineWidth();ctx.fillStyle=outlineStyle;ctx.strokeStyle=outlineStyle;for(var i=0;i<size;i++)
- {tempShape=tiArray[i];tempShape.outlineText(ctx);}}
- ctx.fillStyle=fillStyle;for(var j=0;j<size;j++)
- {tempShape=tiArray[j];tempShape.fillText(ctx);}}
- else
- {if(outlineWidth>0)
- ctx.lineWidth=(outlineWidth*2)+1;ctx.fillStyle=fillStyle;ctx.strokeStyle=outlineStyle;for(var i=0;i<size;i++)
- {tempShape=tiArray[i];if(outlineWidth>0)
- {tempShape.strokeText(ctx);}
- tempShape.fillText(ctx);}}}};}());var armyc2=armyc2||{};armyc2.c2sd=armyc2.c2sd||{};armyc2.c2sd.renderer=armyc2.c2sd.renderer||{};armyc2.c2sd.renderer.MilStdIconRenderer=(function(){var MilStdAttributes=armyc2.c2sd.renderer.utilities.MilStdAttributes,SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,UnitDefTable=armyc2.c2sd.renderer.utilities.UnitDefTable,UnitFontLookup=armyc2.c2sd.renderer.utilities.UnitFontLookup,SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable,RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings,SinglePointRenderer=armyc2.c2sd.renderer.SinglePointRenderer,TacticalGraphicIconRenderer=armyc2.c2sd.renderer.TacticalGraphicIconRenderer,initialized=false;try
- {if(initialized===false)
- {UnitDefTable.init();SymbolDefTable.init();armyc2.c2sd.renderer.utilities.SinglePointLookup.init();armyc2.c2sd.renderer.utilities.UnitFontLookup.init();armyc2.c2sd.renderer.utilities.TacticalGraphicLookup.init();if(UnitDefTable.hasSymbolMap(RendererSettings.Symbology_2525Bch2_USAS_13_14)===false)
- {RendererSettings.setSymbologyStandard(RendererSettings.Symbology_2525C);}
- initialized=true;}}
- catch(err)
- {err.message+=" - MilStdIconRenderer failed to initialize";armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MilStdIconRenderer","Init",err);}
- function renderTacticalMultipointIcon(symbolID,modifiers)
- {var lineColor=SymbolUtilities.getLineColorOfAffiliation(symbolID);if(modifiers[MilStdAttributes.LineColor]!==undefined)
- {lineColor=modifiers[MilStdAttributes.LineColor];}
- var size=RendererSettings.getDefaultPixelSize();if(modifiers[MilStdAttributes.PixelSize]!==undefined)
- {size=modifiers[MilStdAttributes.PixelSize];}
- var ii=TacticalGraphicIconRenderer.getIcon(symbolID,size,lineColor);return ii;}
- return{CanRender:function(){},Render:function(symbolID,modifiers){if(!(modifiers))
- {modifiers={};}
- var symStd=0;if(modifiers[MilStdAttributes.SymbologyStandard])
- {symStd=modifiers[MilStdAttributes.SymbologyStandard];}
- else
- {symStd=RendererSettings.getSymbologyStandard();modifiers[MilStdAttributes.SymbologyStandard]=symStd;}
- var basicID=SymbolUtilities.getBasicSymbolID(symbolID);if(SymbolUtilities.isTacticalGraphic(symbolID))
- {var sd=SymbolDefTable.getSymbolDef(basicID,symStd);if(sd===null)
- {symbolID=SymbolUtilities.reconcileSymbolID(symbolID);basicID=SymbolUtilities.getBasicSymbolID(symbolID);sd=SymbolDefTable.getSymbolDef(basicID);}
- if(sd!==null&&sd.drawCategory===SymbolDefTable.DRAW_CATEGORY_POINT)
- {return armyc2.c2sd.renderer.SinglePointRenderer.renderSPTG(symbolID,modifiers);}
- else
- {return renderTacticalMultipointIcon(symbolID,modifiers);}}
- else if(UnitFontLookup.hasUnitLookup(basicID,symStd))
- {return SinglePointRenderer.renderUnit(symbolID,modifiers);}
- else if(SymbolUtilities.is3dAirspace(symbolID))
- {return renderTacticalMultipointIcon(symbolID,modifiers);}
- else
- {symbolID=SymbolUtilities.reconcileSymbolID(symbolID,false);return SinglePointRenderer.renderUnit(symbolID,modifiers);}}};}());var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.utilities=sec.web.renderer.utilities||{};sec.web.renderer.utilities.JavaRendererUtilities={};sec.web.renderer.utilities.JavaRendererUtilities.getBrowserEngine=function()
- {var ua=navigator.userAgent;if(ua.indexOf("Trident")>0)
- return"Trident";else if(ua.indexOf("AppleWebKit")>0)
- return"AppleWebKit";else if(ua.indexOf("Gecko")>0&&ua.indexOf("Firefox")>0)
- return"Gecko";else
- return"Other";};sec.web.renderer.utilities.JavaRendererUtilities.ARGBtoABGR=function(rgbString)
- {var c=rgbString.split('');var temp1=c[2];var temp2=c[3];c[2]=c[6];c[3]=c[7];c[6]=temp1;c[7]=temp2;var returnVal=c.join("");return returnVal;};sec.web.renderer.utilities.JavaRendererUtilities.normalizeSymbolCode=function(symbolCode)
- {var newSymbolCode=symbolCode;if(symbolCode.charAt(0)==="G"||symbolCode.charAt(0)==="S"){newSymbolCode=newSymbolCode.substring(0,1)+'*'+newSymbolCode.substring(2);newSymbolCode=newSymbolCode.substring(0,3)+'*'+newSymbolCode.substring(4);newSymbolCode=newSymbolCode.substring(0,10)+"****"+newSymbolCode.substring(14);}
- if(symbolCode.charAt(0)===("S")){newSymbolCode=newSymbolCode.substring(0,14)+'*';}
- return newSymbolCode;};sec.web.renderer.utilities.JavaRendererUtilities.ReconcileSymbolID=function(symbolID)
- {var SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities;var sb="";var codingScheme=symbolID.charAt(0);if(symbolID!==null&&symbolID.length===15)
- {if(codingScheme==='S'||codingScheme==='I'||codingScheme==='O'||codingScheme==='E')
- {sb+=(codingScheme);if(SymbolUtilities.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));if(SymbolUtilities.hasValidBattleDimension(symbolID)===false)
- {sb+=('Z');sb="S"+sb.substring(1);}
- else
- sb+=(symbolID.charAt(2));if(SymbolUtilities.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));sb+=("------");sb+=(symbolID.substring(10,15));}
- else if(codingScheme==='G')
- {sb+=(codingScheme);if(SymbolUtilities.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));sb+=('G');if(SymbolUtilities.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));sb+=("GPP---");sb+=(symbolID.substring(10,15));}
- else if(codingScheme==='W')
- {return"SUZP-----------";}
- else
- {sb+=('S');if(SymbolUtilities.hasValidAffiliation(symbolID)===false)
- sb+=('U');else
- sb+=(symbolID.charAt(1));if(SymbolUtilities.hasValidBattleDimension(symbolID)===false)
- {sb+=('Z');sb="S"+sb.substring(1);}
- else
- sb+=(symbolID.charAt(2));if(SymbolUtilities.hasValidStatus(symbolID)===false)
- sb+=('P');else
- sb+=(symbolID.charAt(3));sb+=("------");sb+=(symbolID.substring(10,15));}}
- else
- {return"SUZP-----------";}
- return sb;};sec.web.renderer.utilities.JavaRendererUtilities.is3dSymbol=function(symbolCode,modifiers)
- {var returnValue=false;try
- {var symbolId=symbolCode.substring(4,10);if(symbolId===("ACAI--")||symbolId===("ACAR--")||symbolId===("ACAC--")||symbolId===("AKPC--")||symbolId===("AKPI--")||symbolId===("AKPR--")||symbolId===("AKPI--")||symbolId===("ALC---")||symbolId===("ALM---")||symbolId===("ALS---")||symbolId===("ALU---")||symbolId===("ALL---")||symbolId===("AAR---")||symbolId===("AAF---")||symbolId===("AAH---")||symbolId===("AAM---")||symbolId===("AAF---")||symbolId===("AAML--")||symbolId===("AAMH--"))
- {try
- {if(modifiers)
- {if(modifiers.modifiers)
- {modifiers=modifiers.modifiers;}
- var jsonAltitudeArray=null;if(modifiers.X)
- {jsonAltitudeArray=modifiers.X;}
- else if(modifiers.altitudeDepth)
- {jsonAltitudeArray=modifiers.altitudeDepth;}
- if(jsonAltitudeArray&&jsonAltitudeArray.length>=2)
- {returnValue=true;}
- else
- {returnValue=false;}}}
- catch(je)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("JavaRendererUtilities","is3DSymbol()",je);}}}
- catch(err)
- {returnValue=false;}
- return returnValue;};sec.web.renderer.utilities.JavaRendererUtilities.isNumber=function(text){var re=new RegExp("((-|\\+)?[0-9]+(\\.[0-9]+)?)+");return(re.test(text));};sec.web.renderer.utilities.JavaRendererUtilities.createParameterMapFromURL=function(SymbolInfo)
- {var modifiers={},symbolID=null,parameters=null,key=null,value=null,arrParameters=null,arrKeyValue=null,temp=null,questionIndex=SymbolInfo.indexOf('?');if(this.be==="")
- {this.be=this.getBrowserEngine();}
- var be=this.be,tSpace=String.fromCharCode(8196),gSpace=String.fromCharCode(8192);if(questionIndex===-1)
- symbolID=SymbolInfo;else
- symbolID=SymbolInfo.substring(0,questionIndex);if(questionIndex>0&&(questionIndex+1<SymbolInfo.length))
- {parameters=SymbolInfo.substring(questionIndex+1,SymbolInfo.length);arrParameters=parameters.split("&");for(var i=0;i<arrParameters.length;i++)
- {arrKeyValue=arrParameters[i].split("=");if(arrKeyValue.length===2&&arrKeyValue[1]!==null&&arrKeyValue[1]!=="")
- {key=arrKeyValue[0];value=arrKeyValue[1];temp=decodeURIComponent(value);modifiers[key.toUpperCase()]=temp;}}}
- var symStd=modifiers[armyc2.c2sd.renderer.utilities.MilStdAttributes.SymbologyStandard];if(symStd)
- {symStd=symStd.toUpperCase();if(symStd==="2525B")
- symStd=armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525Bch2_USAS_13_14;else
- symStd=armyc2.c2sd.renderer.utilities.RendererSettings.Symbology_2525C;modifiers[armyc2.c2sd.renderer.utilities.MilStdAttributes.SymbologyStandard]=symStd;}
- modifiers["SYMBOLID"]=symbolID;return modifiers;};sec.web.renderer.utilities.JavaRendererUtilities.MilStdSymbolArraysToArrayLists=function(symbol)
- {var coords=symbol.getCoordinates();coords=new java.util.ArrayList(coords);symbol.setCoordinates(coords);return symbol;};sec.web.renderer.utilities.JavaRendererUtilities.HOSTILE_FILL_COLOR="FFFF8080";sec.web.renderer.utilities.JavaRendererUtilities.FRIENDLY_FILL_COLOR="FF80E0FF";sec.web.renderer.utilities.JavaRendererUtilities.NEUTRAL_FILL_COLOR="FFAAFFAA";sec.web.renderer.utilities.JavaRendererUtilities.UNKNOWN_FILL_COLOR="FFFFFF80";var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.PointConverter=function(controlLong,controlLat,scale){this._controlLat=0,this._controlLong=0,this._scale=0,this._metersPerPixel=0,this._GeoPixelConversion=sec.web.renderer.GeoPixelConversion;this._controlLat=Number(controlLat);this._controlLong=Number(controlLong);this._scale=Number(scale);this._metersPerPixel=sec.web.renderer.GeoPixelConversion.metersPerPixel(scale);};sec.web.renderer.PointConverter.prototype.GeoToPixels=function(coord)
- {var y=this._GeoPixelConversion.lat2y(coord.getY(),this._scale,this._controlLat,this._metersPerPixel);var x=this._GeoPixelConversion.long2x(coord.getX(),this._scale,this._controlLong,coord.getY(),this._metersPerPixel);var ptPixels=new armyc2.c2sd.graphics2d.Point2D(x,y);return ptPixels;};sec.web.renderer.PointConverter.prototype.PixelsToGeo=function(pixel)
- {var y=this._GeoPixelConversion.y2lat(pixel.getY(),this._scale,this._controlLat,this._metersPerPixel);var x=this._GeoPixelConversion.x2long(pixel.getX(),this._scale,this._controlLong,y,this._metersPerPixel);var pt2dGeo=new armyc2.c2sd.graphics2d.Point2D(x,y);return pt2dGeo;};var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.SymbolModifiers=sec.web.renderer.SymbolModifiers||{};sec.web.renderer.SymbolModifiers.A_SYMBOL_ICON="";sec.web.renderer.SymbolModifiers.B_ECHELON="";sec.web.renderer.SymbolModifiers.C_QUANTITY="";sec.web.renderer.SymbolModifiers.H_ADDITIONAL_INFO_1="";sec.web.renderer.SymbolModifiers.H1_ADDITIONAL_INFO_2="";sec.web.renderer.SymbolModifiers.H2_ADDITIONAL_INFO_3="";sec.web.renderer.SymbolModifiers.N_HOSTILE="";sec.web.renderer.SymbolModifiers.Q_DIRECTION_OF_MOVEMENT="";sec.web.renderer.SymbolModifiers.S_OFFSET_INDICATOR="";sec.web.renderer.SymbolModifiers.T_UNIQUE_DESIGNATION_1="";sec.web.renderer.SymbolModifiers.T1_UNIQUE_DESIGNATION_2="";sec.web.renderer.SymbolModifiers.V_EQUIP_TYPE="";sec.web.renderer.SymbolModifiers.W_DTG_1="";sec.web.renderer.SymbolModifiers.W1_DTG_2="";sec.web.renderer.SymbolModifiers.X_ALTITUDE_DEPTH=null;sec.web.renderer.SymbolModifiers.Y_LOCATION="";sec.web.renderer.SymbolModifiers.AM_DISTANCE=null;sec.web.renderer.SymbolModifiers.AN_AZIMUTH=null;sec.web.renderer.SymbolModifiers.FillColor="";sec.web.renderer.SymbolModifiers.LineColor="";sec.web.renderer.SymbolModifiers.X_ALTITUDE_DEPTH=new Array();sec.web.renderer.SymbolModifiers.AM_DISTANCE=new Array();sec.web.renderer.SymbolModifiers.AN_AZIMUTH=new Array();var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.GeoPixelConversion=(function(){var inchPerMeter=39.3700787,pixelsPerInch=96,METERS_PER_DEG=111319.49079327357264771338267056;return{metersPerPixel:function(scale)
- {var step1=scale/pixelsPerInch;return step1/inchPerMeter;},lat2y:function(latitude,scale,latOrigin,metPerPix)
- {var latRem=-(latitude-latOrigin);var pixDis=(latRem*METERS_PER_DEG)/metPerPix;return pixDis;},y2lat:function(yPosition,scale,latOrigin,metPerPix){var latitude=latOrigin-((yPosition*metPerPix)/METERS_PER_DEG);return latitude;},long2x:function(longitude,scale,longOrigin,latitude,metPerPix){var longRem=longitude-longOrigin;if(longRem>180){longRem-=360;}
- if(longRem<-180){longRem+=360;}
- var metersPerDeg=this.GetMetersPerDegAtLat(latitude);var pixDis=(longRem*metersPerDeg)/metPerPix;return pixDis;},x2long:function(xPosition,scale,longOrigin,latitude,metPerPix){var metersPerDeg=this.GetMetersPerDegAtLat(latitude);var longitude=longOrigin+((xPosition*metPerPix)/metersPerDeg);if(longitude<-180){longitude+=360;}else if(longitude>180){longitude-=360;}
- return longitude;},Deg2Rad:function(deg){var conv_factor=(2.0*Math.PI)/360.0;return(deg*conv_factor);},GetMetersPerDegAtLat:function(lat){lat=this.Deg2Rad(lat);var p1=111412.84;var p2=-93.5;var p3=0.118;var longlen=(p1*Math.cos(lat))+(p2*Math.cos(3*lat))+(p3*Math.cos(5*lat));return longlen;}};}());var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.MultiPointHandler=(function(){var ErrorLogger=armyc2.c2sd.renderer.utilities.ErrorLogger;var SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities;var ModifiersTG=armyc2.c2sd.renderer.utilities.ModifiersTG;var MilStdAttributes=armyc2.c2sd.renderer.utilities.MilStdAttributes;var SymbolDefTable=armyc2.c2sd.renderer.utilities.SymbolDefTable;var RendererSettings=armyc2.c2sd.renderer.utilities.RendererSettings;var _appletChecked=false;var _appletUrl=null;var baseURL="http:"+"//"+location.hostname+":8080/",baseSURL=location.protocol+"//"+location.host+"/";var _decimalAccuracy=7;function hasRequiredModifiers(symbolID,dc,AM,AN)
- {var message="";if((dc>=16&&dc<=20))
- {if(dc===SymbolDefTable.DRAW_CATEGORY_CIRCULAR_PARAMETERED_AUTOSHAPE)
- {if(AM!==null&&AM.length>0)
- return{hasRequiredModifiers:true,message:true};else
- {message+=symbolID+" requires a modifiers object that has 1 distance/AM value.";return{hasRequiredModifiers:false,message:message};}}
- else if(dc===SymbolDefTable.DRAW_CATEGORY_RECTANGULAR_PARAMETERED_AUTOSHAPE)
- {if(AM!==null&&AM.length>=2&&AN!==null&&AN.length>=1)
- return{hasRequiredModifiers:true,message:true};else
- {message+=symbolID+" requires a modifiers object that has 2 distance/AM values and 1 azimuth/AN value.";return{hasRequiredModifiers:false,message:message};}}
- else if(dc===SymbolDefTable.DRAW_CATEGORY_SECTOR_PARAMETERED_AUTOSHAPE)
- {if(AM!==null&&AM.length>=2&&AN!==null&&AN.length>=2)
- return{hasRequiredModifiers:true,message:true};else
- {message+=symbolID+" requires a modifiers object that has 2 distance/AM values and 2 azimuth/AN values per sector. The first sector can have just one AM value although it is recommended to always use 2 values for each sector.";return{hasRequiredModifiers:false,message:message};}}
- else if(dc===SymbolDefTable.DRAW_CATEGORY_CIRCULAR_RANGEFAN_AUTOSHAPE)
- {if(AM!==null&&AM.length>0)
- return{hasRequiredModifiers:true,message:true};else
- {message+=symbolID+" requires a modifiers object that has at least 1 distance/AM value";return{hasRequiredModifiers:false,message:message};}}
- else if(dc===SymbolDefTable.DRAW_CATEGORY_TWO_POINT_RECT_PARAMETERED_AUTOSHAPE)
- {if(AM!==null&&AM.length>0)
- return{hasRequiredModifiers:true,message:true};else
- {message+=symbolID+" requires a modifiers object that has 1 distance/AM value.";return{hasRequiredModifiers:false,message:message};}}
- else
- {return{hasRequiredModifiers:true,message:true};}}
- else
- {return{hasRequiredModifiers:true,message:true};}};return{MODIFIER_HEADER:"modifiers",QUANTITY:"quantity",REINFORCE_OR_REDUCED:"reinforcedOrReduced",STAFF_COMMENTS:"staffComments",ADDITIONAL_INFO_1:"additionalInfo1",ADDITIONAL_INFO_2:"additionalInfo2",ADDITIONAL_INFO_3:"additionalInfo3",EVALUATION_RATION:"evaluationRating",COMBAT_EFFECTIVENESS:"combatEffectiveness",SIGNATURE_EQUIPMENT:"signatureEquipment",HIGHER_FORMATION:"higherFormation",HOSTILE:"hostile",IFFSIFF:"iffSif",DIRECTION_OF_MOVEMENT:"directionOfMovement",UNIQUE_DESIGNATION_1:"uniqueDesignation1",UNIQUE_DESIGNATION_2:"uniqueDesignation2",EQUIPMENT_TYPE:"equipmentType",DATE_TIME_GROUP_1:"dateTimeGroup1",DATE_TIME_GROUP_2:"dateTimeGroup2",DATE_TIME_GROUP_3:"dateTimeGroup3",ALTITUDE_DEPTH:"altitudeDepth",LOCATION:"location",SPEED:"speed",SPECIAL_C2_HQ:"specialC2Headquarters",DISTANCE:"distance",AZIMUTH:"azimuth",FILL_COLOR:"fillColor",LINE_COLOR:"lineColor",LINE_THICKNESS:"lineThickness",SYMBOL_FILL_ICON_SIZE:"symbolFillIconSize",SYMBOL_FILL_IDS:"symbolFillIds",SYMBOL_LINE_IDS:"symbolLineIds",Symbology_2525Bch2_USAS_13_14:0,Symbology_2525C:1,NormalizeGECoordsToGEExtents:function(leftLongitude,rightLongitude,pts2d)
- {try
- {var j=0;var x=0,y=0;var pt2d=null;for(j=0;j<pts2d.length;j++)
- {pt2d=pts2d[j];x=pt2d.getX();y=pt2d.getY();while(x<leftLongitude)
- x+=360;while(x>rightLongitude)
- x-=360;pt2d=new armyc2.c2sd.graphics2d.Point2D(x,y);pts2d[j]=pt2d;}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","NormalizeGECoordsToGEExtents",err);}},NormalizeCoordToGECoord:function(pt2d)
- {var ptGeo=null;try
- {var x=pt2d.getX(),y=pt2d.getY();while(x<-180)
- x+=360;while(x>180)
- x-=360;ptGeo=new armyc2.c2sd.graphics2d.Point2D(x,y);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","NormalizeCoordToGECoord",err);}
- return ptGeo;},getBoundingRectangle:function(controlPoints,bbox)
- {var bbox2="";try
- {var left=0,right=0,top=0,bottom=0;var coordinates=controlPoints.split(" ");var len=coordinates.length;var i=0;left=Number.MAX_VALUE;right=Number.MIN_VALUE;top=Number.MIN_VALUE;bottom=Number.MAX_VALUE;for(i=0;i<len;i++)
- {var coordPair=coordinates[i].split(",");var latitude=coordPair[1].trim();var longitude=coordPair[0].trim();if(longitude<left)
- left=longitude;if(longitude>right)
- right=longitude;if(latitude>top)
- top=latitude;if(latitude<bottom)
- bottom=latitude;}
- bbox2=left.toString()+","+bottom.toString()+","+right.toString()+","+top.toString();}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","getBoundingRectangle",err);}
- return bbox2;},getControlPoint:function(geoCoords)
- {var pt2d=null;try
- {var left=Number.MAX_VALUE;var right=Number.MIN_VALUE;var top=Number.MIN_VALUE;var bottom=Number.MAX_VALUE;var ptTemp=null;for(var j=0;j<geoCoords.length;j++)
- {ptTemp=geoCoords[j];if(ptTemp.getX()<left)
- left=ptTemp.getX();if(ptTemp.getX()>right)
- right=ptTemp.getX();if(ptTemp.getY()>top)
- top=ptTemp.getY();if(ptTemp.getY()<bottom)
- bottom=ptTemp.getY();}
- pt2d=new armyc2.c2sd.graphics2d.Point2D(left,top);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","getControlPoint",err);}
- return pt2d;},getGeoUL:function(geoCoords)
- {var ptGeo=null;try
- {var j=0;var pt=null;var left=geoCoords[0].x;var top=geoCoords[0].y;var right=geoCoords[0].x;var bottom=geoCoords[0].y;for(j=1;j<geoCoords.length;j++)
- {pt=geoCoords[j];if(pt.getX()<left)
- left=pt.getX();if(pt.getX()>right)
- right=pt.getX();if(pt.getY()>top)
- top=pt.getY();if(pt.getY()<bottom)
- bottom=pt.getY();}
- if(right-left>180)
- {left=geoCoords[0].x;for(j=1;j<geoCoords.length;j++)
- {pt=geoCoords[0];if(pt.getX()>0&&pt.getX()<left)
- left=pt.getX();}}
- ptGeo=new armyc2.c2sd.graphics2d.Point2D(left,top);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","getGeoUL",err);}
- return ptGeo;},crossesIDL:function(geoCoords)
- {var result=false;var pt2d=sec.web.renderer.MultiPointHandler.getControlPoint(geoCoords);var left=pt2d.getX();var ptTemp=null;for(var j=0;j<geoCoords.length;j++){ptTemp=geoCoords[j];if(Math.abs(ptTemp.getX()-left)>180)
- return true;}
- return result;},ShouldClipSymbol:function(symbolID)
- {var status=armyc2.c2sd.renderer.utilities.SymbolUtilities.getStatus(symbolID);if(symbolID.charAt(0)===("G")&&status===("A")){return true;}
- if(armyc2.c2sd.renderer.utilities.SymbolUtilities.isWeather(symbolID))
- return true;var id=armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbolID);if(id===("G*T*F-----****X")||id===("G*F*LCC---****X")||id===("G*G*GLB---****X")||id===("G*G*GLF---****X")||id===("G*G*GLC---****X")||id===("G*G*GAF---****X")||id===("G*G*AAW---****X")||id===("G*G*DABP--****X")||id===("G*G*OLP---****X")||id===("G*G*PY----****X")||id===("G*G*PM----****X")||id===("G*G*ALL---****X")||id===("G*G*ALU---****X")||id===("G*G*ALM---****X")||id===("G*G*ALC---****X")||id===("G*G*SLB---****X")||id===("G*G*SLH---****X")||id===("G*G*GAY---****X")||id===("G*G*ALS---****X")||id===("G*M*OFA---****X")||id===("G*M*OGB---****X")||id===("G*M*OGL---****X")||id===("G*M*OGZ---****X")||id===("G*M*OGF---****X")||id===("G*M*OGR---****X")||id===("G*M*OADU--****X")||id===("G*M*OADC--****X")||id===("G*M*OAR---****X")||id===("G*M*OAW---****X")||id===("G*M*OEF---****X")||id===("G*M*OMC---****X")||id===("G*M*OWU---****X")||id===("G*M*OWS---****X")||id===("G*M*OWD---****X")||id===("G*M*OWA---****X")||id===("G*M*OWL---****X")||id===("G*M*OWH---****X")||id===("G*M*OWCS--****X")||id===("G*M*OWCD--****X")||id===("G*M*OWCT--****X")||id===("G*M*OHO---****X")||id===("G*M*BDD---****X")||id===("G*M*BCD---****X")||id===("G*M*BCE---****X")||id===("G*M*SL----****X")||id===("G*M*SP----****X")||id===("G*M*NR----****X")||id===("G*M*NB----****X")||id===("G*M*NC----****X")||id===("G*F*ACNI--****X")||id===("G*F*ACNR--****X")||id===("G*F*ACNC--****X")||id===("G*F*AKBC--****X")||id===("G*F*AKBI--****X")||id===("G*F*AKBR--****X")||id===("G*F*AKPC--****X")||id===("G*F*AKPI--****X")||id===("G*F*AKPR--****X")||id===("G*F*LT----****X")||id===("G*F*LTS---****X")||id===("G*G*SAE---****X")||id===("G*S*LRA---****X")||id===("G*S*LRM---****X")||id===("G*S*LRO---****X")||id===("G*S*LRT---****X")||id===("G*S*LRW---****X")||id===("G*T*Q-----****X")||id===("G*T*E-----****X")||id===("G*T*F-----****X")||id===("G*T*K-----****X")||id===("G*T*KF----****X")||id===("G*T*A-----****X")||id===("G*G*PA----****X"))
- {return true;}
- else
- return false;},RenderSymbol:function(id,name,description,symbolCode,controlPoints,scale,bbox,symbolModifiers,format,symStd)
- {if(symStd===undefined)
- {symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();}
- var normalize=false,controlLat=0,controlLong=0,jsonOutput="",jsonContent="",rect=null,tgPoints=null,coordinates=controlPoints.split(" "),tgl=new armyc2.c2sd.JavaTacticalRenderer.TGLight(),shapes=new Array(),modifiers=new Array(),geoCoords=new Array(),len=coordinates.length,ipc=null,left=0,right=0,top=0,bottom=0,temp=null,ptGeoUL=null,width=0,height=0,leftX=0,topY=0,bottomY=0,rightX=0,j=0,bboxCoords=null;if(bbox!==null&&bbox!==("")){var bounds=null;if(bbox.contains(" "))
- {bboxCoords=new Array();var x=0;var y=0;var coords=bbox.split(" ");var coord;var arrCoord;var tempPt=null;for(var i=0;i<coords.length;i++)
- {coord=coords[i];arrCoord=coord.split(",");x=arrCoord[0];y=arrCoord[1];tempPt=new armyc2.c2sd.graphics2d.Point2D();tempPt.setLocation(x,y);bboxCoords.push(tempPt);}
- ptGeoUL=sec.web.renderer.MultiPointHandler.getGeoUL(bboxCoords);left=ptGeoUL.getX();top=ptGeoUL.getY();ipc=new sec.web.renderer.PointConverter(left,top,scale);var ptPixels=null;var ptGeo=null;for(j=0;j<bboxCoords.length;j++){ptGeo=bboxCoords[j];ptPixels=ipc.GeoToPixels(ptGeo);x=ptPixels.getX();y=ptPixels.getY();if(x<20)
- x=20;if(y<20)
- y=20;ptPixels.setLocation(x,y);bboxCoords[j]=ptPixels;}}
- else
- {bounds=bbox.split(",");left=bounds[0];right=bounds[2];top=bounds[3];bottom=bounds[1];ipc=new sec.web.renderer.PointConverter(left,top,scale);}
- if(left===right)
- {var dist=1000.0*(1.0/96.0)*(1.0/39.37)*scale;var ptLeft=new armyc2.c2sd.JavaLineArray.POINT2(left,top);var ptRight=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptLeft,dist,90.0);right=ptRight.x;if(right>180)
- right-=360;else
- if(right<-180)
- right+=360;}
- if(top===bottom)
- {dist=1000.0*(1.0/96.0)*(1.0/39.37)*scale;var ptTop=new armyc2.c2sd.JavaLineArray.POINT2(left,top);var ptBottom=armyc2.c2sd.JavaTacticalRenderer.mdlGeodesic.geodesic_coordinate(ptTop,dist,180.0);bottom=ptBottom.y;}
- var pt2d=null;if(bboxCoords===undefined||bboxCoords===null)
- {pt2d=new armyc2.c2sd.graphics2d.Point2D();pt2d.setLocation(left,top);temp=ipc.GeoToPixels(pt2d);leftX=Math.round(temp.getX());topY=Math.round(temp.getY());pt2d=new armyc2.c2sd.graphics2d.Point2D();pt2d.setLocation(right,bottom);temp=ipc.GeoToPixels(pt2d);bottomY=Math.round(temp.getY());rightX=Math.round(temp.getX());width=Math.abs(rightX-leftX);height=Math.abs(bottomY-topY);rect=new armyc2.c2sd.graphics2d.Rectangle(leftX,topY,width,height);}}
- else
- {rect=null;}
- var tempPt=null;for(var i=0;i<len;i++){var coordPair=coordinates[i].split(",");var latitude=coordPair[1].trim();var longitude=coordPair[0].trim();tempPt=new armyc2.c2sd.graphics2d.Point2D();tempPt.setLocation(longitude,latitude);geoCoords.push(tempPt);}
- if(ipc===null){var ptCoordsUL=sec.web.renderer.MultiPointHandler.getGeoUL(geoCoords);ipc=new sec.web.renderer.PointConverter(ptCoordsUL.getX(),ptCoordsUL.getY(),scale);}
- if(sec.web.renderer.MultiPointHandler.crossesIDL(geoCoords)===true)
- normalize=true;else
- normalize=false;if(normalize){sec.web.renderer.MultiPointHandler.NormalizeGECoordsToGEExtents(0,360,geoCoords);}
- var geoCoords2=new Array();var ptLT=new armyc2.c2sd.graphics2d.Point2D();ptLT.setLocation(left,top);geoCoords2.push(ptLT);var ptRB=new armyc2.c2sd.graphics2d.Point2D();ptRB.setLocation(right,bottom);geoCoords2.push(ptRB);if(normalize)
- sec.web.renderer.MultiPointHandler.NormalizeGECoordsToGEExtents(0,360,geoCoords2);if(armyc2.c2sd.renderer.utilities.SymbolDefTable.hasSymbolDef(SymbolUtilities.getBasicSymbolID(symbolCode),symStd)===false)
- symbolCode=SymbolUtilities.reconcileSymbolID(symbolCode,true);if((sec.web.renderer.MultiPointHandler.ShouldClipSymbol(symbolCode))===false)
- rect=null;tgl.set_SymbolId(symbolCode);tgl.set_Pixels(null);try{var mSymbol=new armyc2.c2sd.renderer.utilities.MilStdSymbol(symbolCode,null,geoCoords,null);mSymbol.setSymbologyStandard(symStd);if(symbolModifiers!==null&&symbolModifiers!==(""))
- {sec.web.renderer.MultiPointHandler.populateModifiers(symbolModifiers,mSymbol);}
- else
- mSymbol.setFillColor(null);var symbolIsValid=this.canRenderMultiPoint(mSymbol);if(symbolIsValid.canRender===false)
- {jsonOutput="";jsonOutput+=("{\"type\":\"error\",\"error\":\"There was an error creating the MilStdSymbol "+symbolCode+": "+"- ");jsonOutput+=(symbolIsValid.message+" - ");jsonOutput+=("\"}");ErrorLogger.LogWarning("MultiPointHandler","RenderSymbol",symbolIsValid.message);return jsonOutput;}
- mSymbol=sec.web.renderer.utilities.JavaRendererUtilities.MilStdSymbolArraysToArrayLists(mSymbol);if(mSymbol.getModifierMap()["symbolFillIds"]!==undefined||mSymbol.getModifierMap()["symbolLineIds"]!==undefined)
- {tgl=armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.createTGLightFromMilStdSymbol(mSymbol,ipc);var tgPoints=tgl.get_Pixels();}
- if(bboxCoords===null)
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.renderWithPolylines(mSymbol,ipc,rect);else
- armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.renderWithPolylines(mSymbol,ipc,bboxCoords);shapes=mSymbol.getSymbolShapes();modifiers=mSymbol.getModifierShapes();if(format===1)
- {jsonOutput="{\"type\":\"symbol\",";jsonContent=sec.web.renderer.MultiPointHandler.JSONize(shapes,modifiers,ipc,new Boolean(true),normalize);jsonOutput+=jsonContent;jsonOutput+="}";}
- else if(format===0)
- {jsonContent=sec.web.renderer.MultiPointHandler.KMLize(id,name,description,symbolCode,shapes,modifiers,ipc,new Boolean(true),normalize);if(mSymbol.getModifierMap()["symbolFillIds"]!==undefined||mSymbol.getModifierMap()["symbolLineIds"]!==undefined)
- {var fillKML=this.AddImageFillToKML(tgPoints,jsonContent,mSymbol,ipc,normalize);if(fillKML!==null&&fillKML!=="")
- {jsonContent=fillKML;}}
- jsonOutput=jsonContent;}}
- catch(exc)
- {jsonOutput="";jsonOutput+=("{\"type\":\"error\",\"error\":\"There was an error creating the MilStdSymbol "+symbolCode+": "+"- ");jsonOutput+=(exc.message+" - ");jsonOutput+=("\"}");ErrorLogger.LogException("MultiPointHandler","RenderSymbol",exc);}
- var debug=false;if(debug===true){console.info("Symbol Code: "+symbolCode);console.info("Scale: "+scale);console.info("BBOX: "+bbox);if(controlPoints!==null){console.info("Geo Points: "+controlPoints);}
- if(tgl!==null&&tgl.get_Pixels()!==null){console.info("Pixel: "+tgl.get_Pixels().toString());}
- if(bbox!==null){console.info("geo bounds: "+bbox);}
- if(rect!==null){console.info("pixel bounds: "+rect.toString());}
- if(jsonOutput!==null){console.info(jsonOutput);}}
- return jsonOutput;},ConvertPolylinePixelsToCoords:function(polylines,ipc,normalize)
- {var newPolylines=new Array();var latitude=0;var longitude=0;var newLine=null;var tempPt=null;var pt=null;var geoCoord=null;try
- {for(var i=0;i<polylines.length;i++)
- {newLine=new Array();for(var j=0;j<newLine.length;j++)
- {pt=newLine[j];geoCoord=ipc.PixelsToGeo(pt);if(normalize)
- {geoCoord=this.NormalizeCoordToGECoord(geoCoord);}
- latitude=geoCoord.getY();longitude=geoCoord.getX();newLine.add(new armyc2.c2sd.graphics2d.Point2D(longitude,latitude));}
- newPolylines.push(newLine);}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","ConvertPolylinePixelsToCoords",err);}
- return newPolylines;},RenderSymbol2D:function(id,name,description,symbolCode,controlPoints,pixelWidth,pixelHeight,bbox,symbolModifiers,format,symStd)
- {if(arguments.length===11)
- symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();var jsonOutput="",jsonContent="",rect=null,tgPoints=null,coordinates=controlPoints.split(" "),tgl=new armyc2.c2sd.JavaTacticalRenderer.TGLight(),shapes=new Array(),modifiers=new Array(),geoCoords=new Array(),ipc=null,left=0,right=0,top=0,bottom=0;if(bbox!==null&&bbox!==(""))
- {var bounds=bbox.split(",");left=bounds[0];right=bounds[2];top=bounds[3];bottom=bounds[1];ipc=new armyc2.c2sd.renderer.utilities.PointConversion(pixelWidth,pixelHeight,(top),(left),(bottom),(right));}
- else
- {return"ERROR - Bad bbox value: "+bbox;}
- var len=coordinates.length;var tempPt=null;for(var i=0;i<len;i++)
- {var coordPair=coordinates[i].split(",");var latitude=coordPair[1].trim();var longitude=coordPair[0].trim();tempPt=new armyc2.c2sd.graphics2d.Point2D();tempPt.setLocation(longitude,latitude);geoCoords.push(tempPt);}
- try{var mSymbol=new armyc2.c2sd.renderer.utilities.MilStdSymbol(symbolCode,null,geoCoords,null);mSymbol.setSymbologyStandard(symStd);if(symbolModifiers!==null&&symbolModifiers!==(""))
- {sec.web.renderer.MultiPointHandler.populateModifiers(symbolModifiers,mSymbol);}
- else
- mSymbol.setFillColor(null);var temp=null;var leftX;var topY;var bottomY;var rightX;var width;var height;var pt2d=null;if((sec.web.renderer.MultiPointHandler.ShouldClipSymbol(symbolCode))===true){pt2d=new armyc2.c2sd.graphics2d.Point2D();pt2d.setLocation(left,top);temp=ipc.GeoToPixels(pt2d);leftX=Math.round(temp.getX());topY=Math.round(temp.getY());pt2d=new armyc2.c2sd.graphics2d.Point2D();pt2d.setLocation(right,bottom);temp=ipc.GeoToPixels(pt2d);bottomY=Math.round(temp.getY());rightX=Math.round(temp.getX());width=Math.abs(rightX-leftX);height=Math.abs(bottomY-topY);rect=new armyc2.c2sd.graphics2d.Rectangle(leftX,topY,width,height);}
- var symbolIsValid=this.canRenderMultiPoint(mSymbol);if(symbolIsValid.canRender===false)
- {jsonOutput="";jsonOutput+=("{\"type\":\"error\",\"error\":\"There was an error creating the MilStdSymbol "+symbolCode+": "+"- ");jsonOutput+=(symbolIsValid.message+" - ");jsonOutput+=("\"}");ErrorLogger.LogWarning("MultiPointHandler","RenderSymbol",symbolIsValid.message);return jsonOutput;}
- mSymbol=sec.web.renderer.utilities.JavaRendererUtilities.MilStdSymbolArraysToArrayLists(mSymbol);armyc2.c2sd.JavaRendererServer.RenderMultipoints.clsRenderer.renderWithPolylines(mSymbol,ipc,rect);shapes=mSymbol.getSymbolShapes();modifiers=mSymbol.getModifierShapes();var normalize=false;if(format===1)
- {jsonOutput=("{\"type\":\"symbol\",");jsonContent=sec.web.renderer.MultiPointHandler.JSONize(shapes,modifiers,ipc,new Boolean(false),normalize);jsonOutput+=(jsonContent);jsonOutput+=("}");}else if(format===0)
- {jsonContent=sec.web.renderer.MultiPointHandler.KMLize(id,name,description,symbolCode,shapes,modifiers,ipc,new Boolean(false),normalize);if(mSymbol.getModifierMap()["symbolFillIds"]||mSymbol.getModifierMap["symbolLineIds"])
- {}
- jsonOutput=jsonContent;}}catch(err){jsonOutput="";jsonOutput+=("{\"type\":\"MultiPointHandler\",\"RenderSymbol2D\":\"There was an error creating the MilStdSymbol "+symbolCode+": "+"- ");jsonOutput+=(err.message+" - ");jsonOutput+=("\"}");ErrorLogger.LogException("MultiPointHandler","RenderSymbol2D",err);}
- var debug=false;if(debug===true)
- {console.info("Symbol Code: "+symbolCode);console.info("BBOX: "+bbox);if(controlPoints!==null){console.info("Geo Points: "+controlPoints);}
- if(tgl!==null&&tgl.get_Pixels()!==null){console.info("Pixel: "+tgl.get_Pixels().toString());}
- if(bbox!==null){console.info("geo bounds: "+bbox);}
- if(rect!==null){console.info("pixel bounds: "+rect.toString());}
- if(jsonOutput!==null){console.info(jsonOutput);}}
- return jsonOutput;},canRenderMultiPoint:function(symbol)
- {var symStd=symbol.getSymbologyStandard();var symbolID=symbol.getSymbolID();var basicID=SymbolUtilities.getBasicSymbolID(symbolID);var sd=null;var dc=99;var coordCount=symbol.getCoordinates().length;if(SymbolDefTable.hasSymbolDef(basicID,symStd))
- {sd=SymbolDefTable.getSymbolDef(basicID,symStd);}
- if(sd!==null)
- {dc=sd.drawCategory;if(coordCount<sd.minPoints)
- {return{canRender:false,message:"symbolID: \""+symbolID+"\" requires a minimum of "+sd.minPoints+" points. "+coordCount+" are present."};}
- var AM=symbol.getModifiers_AM_AN_X(ModifiersTG.AM_DISTANCE);var AN=symbol.getModifiers_AM_AN_X(ModifiersTG.AN_AZIMUTH);var result=hasRequiredModifiers(symbolID,dc,AM,AN);if(result.hasRequiredModifiers===false)
- {return{canRender:false,message:result.message};}
- else
- {return{canRender:true,message:""};}}
- else if(symbolID.indexOf("BS_")===0||symbolID.indexOf("BBS_")===0)
- {return{canRender:true,message:""};}
- else
- {return{canRender:false,message:"symbolID: \""+symbolID+"\" not recognized."};}},populateModifiers:function(modifiers,symbol)
- {var modifierMap={},altitudes=null,azimuths=null,distances=null,fillColor=null,lineColor=null,lineWidth=0,symbolFillIDs=null,symbolFillIconSize=null;try{if(typeof(modifiers)==='string')
- {modifiers=JSON.parse(modifiers);if(modifiers.modifiers)
- modifiers=modifiers.modifiers;}
- if(modifiers[ModifiersTG.C_QUANTITY])
- modifierMap[ModifiersTG.C_QUANTITY]=modifiers[ModifiersTG.C_QUANTITY];else if(modifiers.quantity)
- modifierMap[ModifiersTG.C_QUANTITY]=modifiers.quantity;if(modifiers[ModifiersTG.H_ADDITIONAL_INFO_1])
- modifierMap[ModifiersTG.H_ADDITIONAL_INFO_1]=modifiers[ModifiersTG.H_ADDITIONAL_INFO_1];else if(modifiers.additionalInfo1)
- modifierMap[ModifiersTG.H_ADDITIONAL_INFO_1]=modifiers.additionalInfo1;if(modifiers[ModifiersTG.H1_ADDITIONAL_INFO_2])
- modifierMap[ModifiersTG.H1_ADDITIONAL_INFO_2]=modifiers[ModifiersTG.H1_ADDITIONAL_INFO_2];else if(modifiers.additionalInfo2)
- modifierMap[ModifiersTG.H1_ADDITIONAL_INFO_2]=modifiers.additionalInfo2;if(modifiers[ModifiersTG.H2_ADDITIONAL_INFO_3])
- modifierMap[ModifiersTG.H2_ADDITIONAL_INFO_3]=modifiers[ModifiersTG.H2_ADDITIONAL_INFO_3];else if(modifiers.additionalInfo3)
- modifierMap[ModifiersTG.H2_ADDITIONAL_INFO_3]=modifiers.additionalInfo3;if(modifiers[ModifiersTG.N_HOSTILE])
- modifierMap[ModifiersTG.N_HOSTILE]=modifiers[ModifiersTG.N_HOSTILE];else if(modifiers.hostile)
- modifierMap[ModifiersTG.N_HOSTILE]=modifiers.hostile;if(modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1])
- modifierMap[ModifiersTG.T_UNIQUE_DESIGNATION_1]=modifiers[ModifiersTG.T_UNIQUE_DESIGNATION_1];else if(modifiers.uniqueDesignation1)
- modifierMap[ModifiersTG.T_UNIQUE_DESIGNATION_1]=modifiers.uniqueDesignation1;if(modifiers[ModifiersTG.T1_UNIQUE_DESIGNATION_2])
- modifierMap[ModifiersTG.T1_UNIQUE_DESIGNATION_2]=modifiers[ModifiersTG.T1_UNIQUE_DESIGNATION_2];else if(modifiers.uniqueDesignation2)
- modifierMap[ModifiersTG.T1_UNIQUE_DESIGNATION_2]=modifiers.uniqueDesignation2;if(modifiers[ModifiersTG.W_DTG_1])
- modifierMap[ModifiersTG.W_DTG_1]=modifiers[ModifiersTG.W_DTG_1];else if(modifiers.dateTimeGroup1)
- modifierMap[ModifiersTG.W_DTG_1]=modifiers.dateTimeGroup1;if(modifiers[ModifiersTG.W1_DTG_2])
- modifierMap[ModifiersTG.W1_DTG_2]=modifiers[ModifiersTG.W1_DTG_2];else if(modifiers.dateTimeGroup2)
- modifierMap[ModifiersTG.W1_DTG_2]=modifiers.dateTimeGroup2;var i=0;if(modifiers[ModifiersTG.X_ALTITUDE_DEPTH]&&modifiers[ModifiersTG.X_ALTITUDE_DEPTH]instanceof Array)
- {var XN=modifiers[ModifiersTG.X_ALTITUDE_DEPTH];altitudes=new Array();for(i=0;i<XN.length;i++){altitudes.push(XN[i]);}}
- else if(modifiers.altitudeDepth&&modifiers.altitudeDepth instanceof Array)
- {altitudes=new Array();for(i=0;i<modifiers.altitudeDepth.length;i++){altitudes.push(modifiers.altitudeDepth[i]);}}
- else if(modifiers.X&&modifiers.X instanceof Array)
- {altitudes=new Array();if(modifiers.X.length)
- {for(i=0;i<modifiers.X.length;i++){altitudes.push(modifiers.X[i]);}}}
- if(modifiers[ModifiersTG.AM_DISTANCE]&&modifiers[ModifiersTG.AM_DISTANCE]instanceof Array)
- {var AM=modifiers[ModifiersTG.AM_DISTANCE];distances=new Array();for(i=0;i<AM.length;i++){distances.push(AM[i]);}}
- else if(modifiers.distance&&modifiers.distance instanceof Array)
- {distances=new Array();for(i=0;i<modifiers.distance.length;i++){distances.push(modifiers.distance[i]);}}
- if(modifiers[ModifiersTG.AN_AZIMUTH]&&modifiers[ModifiersTG.AN_AZIMUTH]instanceof Array)
- {var AN=modifiers[ModifiersTG.AN_AZIMUTH];azimuths=new Array();for(i=0;i<AN.length;i++){azimuths.push(AN[i]);}}
- else if(modifiers.azimuth&&modifiers.azimuth instanceof Array)
- {azimuths=new Array();for(i=0;i<modifiers.azimuth.length;i++){azimuths.push(modifiers.azimuth[i]);}}
- if(modifiers[MilStdAttributes.FillColor])
- fillColor=modifiers[MilStdAttributes.FillColor];else if(modifiers.fillColor)
- fillColor=modifiers.fillColor;if(modifiers[MilStdAttributes.LineColor])
- lineColor=modifiers[MilStdAttributes.LineColor];else if(modifiers.lineColor)
- lineColor=modifiers.lineColor;if(modifiers[MilStdAttributes.LineWidth])
- lineWidth=modifiers[MilStdAttributes.LineWidth];else if(modifiers.lineThickness)
- lineWidth=modifiers.lineThickness;if(modifiers.symbolFillIds!==undefined&&modifiers.symbolFillIds!==null)
- {modifierMap[this.SYMBOL_FILL_IDS]=modifiers.symbolFillIds;}
- else if(modifiers.symbolLineIds!==undefined&&modifiers.symbolLineIds!==null){modifierMap[this.SYMBOL_LINE_IDS]=modifiers.symbolLineIds;}
- if(modifiers.symbolFillIconSize!==undefined&&modifiers.symbolFillIconSize!==null){modifierMap[this.SYMBOL_FILL_ICON_SIZE]=modifiers.symbolFillIconSize;}}
- catch(je)
- {return false;armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","populateModifiers",je);}
- try{symbol.setModifierMap(modifierMap);if(fillColor!==null){symbol.setFillColor(armyc2.c2sd.renderer.utilities.SymbolUtilities.getColorFromHexString(fillColor));}else{symbol.setFillColor(null);}
- if(lineColor!==null){symbol.setLineColor(armyc2.c2sd.renderer.utilities.SymbolUtilities.getColorFromHexString(lineColor));}
- if(lineWidth>0){symbol.setLineWidth(lineWidth);}
- if(altitudes!==null){symbol.setModifiers_AM_AN_X(ModifiersTG.X_ALTITUDE_DEPTH,altitudes);}
- if(distances!==null){symbol.setModifiers_AM_AN_X(ModifiersTG.AM_DISTANCE,distances);}
- if(azimuths!==null){symbol.setModifiers_AM_AN_X(ModifiersTG.AN_AZIMUTH,azimuths);}
- if(armyc2.c2sd.renderer.utilities.SymbolUtilities.getBasicSymbolID(symbol.getSymbolID())===("G*F*AXS---****X")){if(symbol.getModifiers_AM_AN_X(ModifiersTG.AN_AZIMUTH)!==null&&symbol.getModifiers_AM_AN_X(ModifiersTG.AM_DISTANCE)!==null){var anCount=symbol.getModifiers_AM_AN_X(ModifiersTG.AN_AZIMUTH).length;var amCount=symbol.getModifiers_AM_AN_X(ModifiersTG.AM_DISTANCE).length;var am=null;if(amCount<((Math.floor(anCount/2))+1)){am=symbol.getModifiers_AM_AN_X(ModifiersTG.AM_DISTANCE);if(am[0]!==0)
- {am.splice(0,0,0);}}}}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","populateModifiers",err);}
- return true;},KMLize:function(id,name,description,symbolCode,shapes,modifiers,ipc,geMap,normalize)
- {var kml="";var tempModifier=null;var cdataStart="<![CDATA[";var cdataEnd="]]>";kml+=("<Folder id=\""+id+"\">");kml+=("<name>"+cdataStart+name+cdataEnd+"</name>");kml+=("<visibility>1</visibility>");try
- {var len=shapes.size();for(var i=0;i<len;i++){var shapesToAdd=sec.web.renderer.MultiPointHandler.ShapeToKMLString(id,name,description,symbolCode,shapes.get(i),ipc,geMap,normalize);kml+=shapesToAdd;}
- var len2=modifiers.size();for(var j=0;j<len2;j++){tempModifier=modifiers.get(j);if(geMap)
- sec.web.renderer.MultiPointHandler.AdjustModifierPointToCenter(tempModifier);var labelsToAdd=sec.web.renderer.MultiPointHandler.LabelToKMLString(id,j,tempModifier,ipc,normalize);kml+=labelsToAdd;}}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","KMLize",err);}
- kml+="</Folder>";return kml;},JSONize:function(shapes,modifiers,ipc,geMap,normalize)
- {var polygons="",lines="",labels="",jstr="",tempModifier=null;try
- {var len=shapes.size();for(var i=0;i<len;i++)
- {if(jstr.length>0)
- {jstr+=",";}
- var shapesToAdd=sec.web.renderer.MultiPointHandler.ShapeToJSONString(shapes.get(i),ipc,geMap,normalize);if(shapesToAdd.length>0){if(shapesToAdd.substring(2,6)==="line")
- {if(lines.length>0)
- {lines+=",";}
- lines+=shapesToAdd;}
- else if(shapesToAdd.substring(2,6)==="poly")
- {if(polygons.length>0)
- {polygons+=",";}
- polygons+=shapesToAdd;}}}
- jstr+="\"polygons\": ["+polygons+"],"+"\"lines\": ["+lines+"],";var len2=modifiers.size();labels="";for(var j=0;j<len2;j++){tempModifier=modifiers.get(j);if(geMap===true)
- sec.web.renderer.MultiPointHandler.AdjustModifierPointToCenter(tempModifier);var labelsToAdd=sec.web.renderer.MultiPointHandler.LabelToJSONString(tempModifier,ipc,normalize);if(labelsToAdd.length>0){if(labels.length>0){labels+=",";}
- labels+=labelsToAdd;}}
- jstr+="\"labels\": ["+labels+"]";}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","JSONize",err);}
- return jstr;},IsOnePointSymbolCode:function(symbolCode)
- {var symStd=armyc2.c2sd.renderer.utilities.RendererSettings.getSymbologyStandard();var basicCode=SymbolUtilities.getBasicSymbolID(symbolCode);var sd=null;if(SymbolDefTable.hasSymbolDef(basicCode,symStd))
- {sd=SymbolDefTable.getSymbolDef(basicCode,symStd);if(symbolCode.charAt(0)==='G'&&sd.maxPoints===1)
- return true;}
- if(symbolCode.equals("CAKE-----------"))
- return true;else if(symbolCode.equals("CYLINDER-------"))
- return true;else if(symbolCode.equals("RADARC---------"))
- return true;return false;},normalizePoints:function(shape,ipc)
- {var geoCoords=new Array();for(var j=0;j<shape.size();j++)
- {var coord=shape.get(j);var geoCoord=ipc.PixelsToGeo(coord);geoCoord=this.NormalizeCoordToGECoord(geoCoord);var latitude=geoCoord.getY();var longitude=geoCoord.getX();var pt=new armyc2.c2sd.graphics2d.Point2D();pt.setLocation(longitude,latitude);geoCoords[j]=pt;}
- var normalize=sec.web.renderer.MultiPointHandler.crossesIDL(geoCoords);return normalize;},ShapeToKMLString:function(id,name,description,symbolCode,shapeInfo,ipc,geMap,normalize)
- {var kml="",lineColor=null,fillColor=null,googleLineColor=null,googleFillColor=null,lineStyleId="lineColor",stroke=null,lineWidth=4;var cdataStart="<![CDATA[";var cdataEnd="]]>";symbolCode=sec.web.renderer.utilities.JavaRendererUtilities.normalizeSymbolCode(symbolCode);kml+=("<Placemark id=\""+id+"_mg"+"\">");if(description)
- {kml+=("<description>"+cdataStart+description+cdataEnd+"</description>");}
- kml+=("<Style id=\""+lineStyleId+"\">");lineColor=shapeInfo.getLineColor();if(lineColor!==null){googleLineColor=shapeInfo.getLineColor().toKMLHexString();stroke=shapeInfo.getStroke();if(stroke!==null){lineWidth=Math.round(stroke.getLineWidth());lineWidth++;}
- kml+=("<LineStyle>");kml+=("<color>"+googleLineColor+"</color>");kml+=("<colorMode>normal</colorMode>");kml+=("<width>"+lineWidth+"</width>");kml+=("</LineStyle>");}
- fillColor=shapeInfo.getFillColor();if(fillColor!==null){googleFillColor=shapeInfo.getFillColor().toKMLHexString();kml+=("<PolyStyle>");kml+=("<color>"+googleFillColor+"</color>");kml+=("<colorMode>normal</colorMode>");kml+=("<fill>1</fill>");kml+=("<outline>0</outline>");kml+=("</PolyStyle>");}
- kml+=("</Style>");var shapesArray=shapeInfo.getPolylines();var len=shapesArray.size();kml+=("<MultiGeometry>");for(var i=0;i<len;i++){var shape=shapesArray.get(i);normalize=sec.web.renderer.MultiPointHandler.normalizePoints(shape,ipc);if(lineColor!==null){kml+=("<LineString>");kml+=("<tessellate>1</tessellate>");kml+=("<altitudeMode>clampToGround</altitudeMode>");kml+=("<coordinates>");for(var j=0;j<shape.size();j++)
- {var coord=shape.get(j);var geoCoord=ipc.PixelsToGeo(coord);if(normalize)
- geoCoord=this.NormalizeCoordToGECoord(geoCoord);var latitude=geoCoord.getY().toFixed(_decimalAccuracy);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);kml+=(longitude);kml+=(",");kml+=(latitude);kml+=(" ");}
- kml+=("</coordinates>");kml+=("</LineString>");}
- if(fillColor!==null){if(i===0)
- kml+=("<Polygon>");if(i===1&&len>1)
- kml+=("<innerBoundaryIs>");else
- kml+=("<outerBoundaryIs>");kml+=("<LinearRing>");kml+=("<altitudeMode>clampToGround</altitudeMode>");kml+=("<tessellate>1</tessellate>");kml+=("<coordinates>");var lastLongitude=null;if(normalize===false&&this.IsOnePointSymbolCode(symbolCode))
- {for(var j=0;j<shape.size();j++)
- {var coord=shape.get(j);var geoCoord=ipc.PixelsToGeo(coord);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);if(lastLongitude!==null)
- {if(Math.abs(longitude-lastLongitude)>180)
- {normalize=true;break;}}
- lastLongitude=longitude;}}
- for(var j=0;j<shape.size();j++)
- {var coord=shape.get(j);var geoCoord=ipc.PixelsToGeo(coord);var latitude=geoCoord.getY().toFixed(_decimalAccuracy);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);if(normalize)
- {if(longitude>0)
- {longitude-=360;}}
- kml+=(longitude);kml+=(",");kml+=(latitude);kml+=(" ");}
- kml+=("</coordinates>");kml+=("</LinearRing>");if(i===1&&len>1)
- kml+=("</innerBoundaryIs>");else
- kml+=("</outerBoundaryIs>");if(i===len-1)
- kml+=("</Polygon>");}}
- kml+=("</MultiGeometry>");kml+=("</Placemark>");return kml;},AdjustModifierPointToCenter:function(modifier)
- {try{}catch(err){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("MultiPointHandler","AdjustModifierPointToCenter",err);}},ShapeToJSONString:function(shapeInfo,ipc,geMap,normalize)
- {var JSONed="";var fillColor=null;var lineColor=null;if(shapeInfo.getLineColor()!==null){lineColor=shapeInfo.getLineColor().toHexString();}
- if(shapeInfo.getFillColor()!==null){fillColor=shapeInfo.getFillColor().toHexString();}
- var stroke=null;stroke=shapeInfo.getStroke();var lineWidth=4;if(stroke!==null){lineWidth=Math.round(stroke.getLineWidth());}
- var shapesArray=shapeInfo.getPolylines();for(var i=0;i<shapesArray.size();i++){var shape=shapesArray.get(i);normalize=this.normalizePoints(shape,ipc);if(fillColor!==null){JSONed+=("{\"polygon\":[");}else{JSONed+=("{\"line\":[");}
- for(var j=0;j<shape.size();j++){var coord=shape.get(j);var geoCoord=ipc.PixelsToGeo(coord);if(normalize)
- geoCoord=this.NormalizeCoordToGECoord(geoCoord);var latitude=geoCoord.getY().toFixed(_decimalAccuracy);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);coord=new armyc2.c2sd.graphics2d.Point2D();if(normalize&&fillColor!==null)
- {if(longitude>0)
- {longitude-=360;}}
- coord.setLocation(longitude,latitude);shape[j]=coord;JSONed+=("[");JSONed+=(longitude);JSONed+=(",");JSONed+=(latitude);JSONed+=("]");if(j<(shape.size()-1)){JSONed+=(",");}}
- JSONed+=("]");if(lineColor!==null){JSONed+=(",\"lineColor\":\"");JSONed+=(lineColor);JSONed+=("\"");}
- if(fillColor!==null){JSONed+=(",\"fillColor\":\"");JSONed+=(fillColor);JSONed+=("\"");}
- JSONed+=(",\"lineWidth\":\"");JSONed+=(lineWidth);JSONed+=("\"");JSONed+=("}");if(i<(shapesArray.size()-1)){JSONed+=(",");}}
- return JSONed;},LabelToKMLString:function(id,i,shapeInfo,ipc,normalize)
- {var cdataStart="<![CDATA[";var cdataEnd="]]>";var kml="";var coord=new armyc2.c2sd.graphics2d.Point2D();coord.setLocation(shapeInfo.getGlyphPosition().getX(),shapeInfo.getGlyphPosition().getY());var geoCoord=ipc.PixelsToGeo(coord);if(normalize)
- geoCoord=this.NormalizeCoordToGECoord(geoCoord);var latitude=geoCoord.getY().toFixed(_decimalAccuracy);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);var angle=Math.round(shapeInfo.getModifierStringAngle());var text=shapeInfo.getModifierString();if(text!==null&&text!==("")){kml+=("<Placemark id=\""+id+"_lp"+i+"\">");kml+=("<name>"+cdataStart+text+cdataEnd+"</name>");kml+=("<Style>");kml+=("<IconStyle>");kml+=("<scale>.7</scale>");kml+=("<heading>"+angle+"</heading>");kml+=("<Icon>");kml+=("<href></href>");kml+=("</Icon>");kml+=("</IconStyle>");kml+=("<LabelStyle>");kml+=("<scale>.8</scale>");kml+=("</LabelStyle>");kml+=("</Style>");kml+=("<Point>");kml+=("<extrude>1</extrude>");kml+=("<altitudeMode>relativeToGround</altitudeMode>");kml+=("<coordinates>");kml+=(longitude);kml+=(",");kml+=(latitude);kml+=("</coordinates>");kml+=("</Point>");kml+=("</Placemark>");}else{return"";}
- return kml;},LabelToJSONString:function(shapeInfo,ipc,normalize)
- {var JSONed=("{\"label\":");var coord=new armyc2.c2sd.graphics2d.Point2D();coord.setLocation(shapeInfo.getGlyphPosition().getX(),shapeInfo.getGlyphPosition().getY());var geoCoord=ipc.PixelsToGeo(coord);if(normalize)
- geoCoord=this.NormalizeCoordToGECoord(geoCoord);var latitude=geoCoord.getY().toFixed(_decimalAccuracy);var longitude=geoCoord.getX().toFixed(_decimalAccuracy);var angle=shapeInfo.getModifierStringAngle();coord.setLocation(longitude,latitude);shapeInfo.setGlyphPosition(coord);var text=shapeInfo.getModifierString();if(text!==null&&text!==("")){JSONed+=("[");JSONed+=(longitude);JSONed+=(",");JSONed+=(latitude);JSONed+=("]");JSONed+=(",\"text\":\"");JSONed+=(text);JSONed+=("\"");JSONed+=(",\"angle\":\"");JSONed+=(angle);JSONed+=("\"}");}else{return"";}
- return JSONed;},getModififerKML:function(id,name,description,symbolCode,controlPoints,scale,bbox,symbolModifiers,format,symStd)
- {var output="";var placemarks=new Array();try
- {var maxAlt=0;var minAlt=0;output=this.RenderSymbol(id,name,description,symbolCode,controlPoints,scale,bbox,symbolModifiers,format,symStd);var pmiStart=output.indexOf("<Placemark");var pmiEnd=0;var curr=0;var count=0;var tempPlacemark="";while(pmiStart>0)
- {if(count>0)
- {pmiEnd=output.indexOf("</Placemark>",pmiStart)+12;tempPlacemark=output.substring(pmiStart,pmiEnd);if(tempPlacemark.contains("</Point>"))
- placemarks.push(output.substring(pmiStart,pmiEnd));pmiStart=output.indexOf("<Placemark",pmiEnd-2);}
- count++;}
- var sb="";for(var k=1;k<placemarks.length;k++)
- {sb+=(placemarks[k]);}
- return sb;}
- catch(err)
- {ErrorLogger.LogException("MultiPointHandler","getModififerKML",err);}
- return output;},GenerateSymbolLineFillUrl:function(modifiers,pixels,clip)
- {var shapeType=0;var url="";var symbolFillIDs=null;var symbolLineIDs=null;var strClip=null;var symbolSize=25;var imageoffset=0;var lines=null;var points=null;var point=null;var shape=null;var height=0;var width=0;var offsetX=0;var offsetY=0;var x=0;var y=0;var bounds=null;try
- {var path=new armyc2.c2sd.graphics2d.GeneralPath();var temp=null;for(var i=0;i<pixels.size();i++)
- {temp=pixels.get(i);if(i>0)
- {path.lineTo(temp.getX(),temp.getY());}
- else if(i===0)
- {path.moveTo(temp.getX(),temp.getY());}}
- bounds=path.getBounds();height=bounds.getHeight();width=bounds.getWidth();if(bounds.getX()<0)
- {offsetX=Math.round(bounds.getX()*-1);}
- else if((bounds.getX()+bounds.getWidth())>width)
- {offsetX=Math.round((bounds.getX()+bounds.getWidth())-width)*-1;}
- if(bounds.getY()<0)
- {offsetY=Math.round(bounds.getY()*-1);}
- else if((bounds.getY()+bounds.getHeight())>height)
- {offsetY=Math.round((bounds.getY()+bounds.getHeight())-height)*-1;}
- if(clip!==null)
- {var sbClip="";sbClip+=("&clip=");sbClip+=(clip.getX());sbClip+=(",");sbClip+=(clip.getY());sbClip+=(",");sbClip+=(clip.getWidth());sbClip+=(",");sbClip+=(clip.getHeight());strClip=sbClip;}
- var sbCoords="";var sbUrl="";sbCoords+=("coords=");if(modifiers["symbolFillIds"]!==undefined)
- {symbolFillIDs=modifiers["symbolFillIds"];}
- if(modifiers["symbolLineIds"]!==undefined)
- {symbolLineIDs=modifiers["symbolLineIds"];}
- if(modifiers["symbolFillIconSize"]!==undefined)
- {symbolSize=["symbolFillIconSize"];}
- if(modifiers["clip"])
- {strClip=["clip"];}
- for(var i=0;i<pixels.size();i++)
- {if(i>0)
- {sbCoords+=(",");}
- point=pixels.get(i);x=Math.round(point.getX()+offsetX);y=Math.round(point.getY()+offsetY);sbCoords+=(x);sbCoords+=(",");sbCoords+=(y);}
- sbUrl=this.GetImageServerURL();sbUrl+=("AREASYMBOLFILL?");sbUrl+=("renderer=AreaSymbolFillRenderer&");sbUrl+=sbCoords;if(symbolFillIDs!==null)
- {sbUrl+=("&symbolFillIds=");sbUrl+=(symbolFillIDs);}
- if(symbolLineIDs!==null)
- {sbUrl+=("&symbolLineIds=");sbUrl+=(symbolLineIDs);}
- if(symbolSize>0)
- {sbUrl+=("&symbolFillIconSize=");sbUrl+=(symbolSize);}
- if(strClip!==null)
- {sbUrl+=(strClip);}
- sbUrl+=("&height=");sbUrl+=parseInt(height);sbUrl+=("&width=");sbUrl+=parseInt(width);url=sbUrl;if(height<symbolSize||width<symbolSize)
- {url=null;}}
- catch(exc)
- {ErrorLogger.LogException("MPH","GenerateSymbolLineFillUrl",exc);}
- return url;},AddImageFillToKML:function(tgPoints,jsonContent,mSymbol,ipc,normalize)
- {var pixelPoints=new java.util.ArrayList();var path=new armyc2.c2sd.graphics2d.GeneralPath();var kcount=tgPoints.size();var tpTemp=null;for(var k=0;k<kcount;k++)
- {tpTemp=tgPoints.get(k);pixelPoints.add(new armyc2.c2sd.graphics2d.Point2D(tpTemp.x,tpTemp.y));if(k>0)
- {path.lineTo(tpTemp.x,tpTemp.y);}
- else
- {path.moveTo(tpTemp.x,tpTemp.y);}}
- var rect=path.getBounds();var goImageUrl=this.GenerateSymbolLineFillUrl(mSymbol.getModifierMap(),pixelPoints,rect);var goKML="";if(goImageUrl!==null)
- {goKML=this.GenerateGroundOverlayKML(goImageUrl,ipc,rect,normalize);}
- goKML+="</Folder>";jsonContent=jsonContent.replace("</Folder>",goKML);return jsonContent;},GenerateGroundOverlayKML:function(urlImage,ipc,symbolBounds,normalize)
- {var x=0;var y=0;var height=0;var width=0;var sb="";var lineFill=false;var params={};var symbolSize=0;var imageOffset=0;try
- {var index=-1;index=urlImage.indexOf(this.SYMBOL_LINE_IDS);if(index>0)
- {lineFill=true;if(params[this.SYMBOL_FILL_ICON_SIZE]!==undefined)
- {var size=params[this.SYMBOL_FILL_ICON_SIZE];symbolSize=parseInt(size);}
- else
- {symbolSize=25;}
- imageOffset=(symbolSize/2)+3;}
- var bounds=null;bounds=symbolBounds;height=bounds.getHeight()+(imageOffset*2);width=bounds.getWidth()+(imageOffset*2);x=bounds.getX()-imageOffset;y=bounds.getY()-imageOffset;var coord=new armyc2.c2sd.graphics2d.Point2D(x,y);var topLeft=ipc.PixelsToGeo(coord);coord=new armyc2.c2sd.graphics2d.Point2D(x+width,y+height);var bottomRight=ipc.PixelsToGeo(coord);if(normalize)
- {topLeft=this.NormalizeCoordToGECoord(topLeft);bottomRight=this.NormalizeCoordToGECoord(bottomRight);if(topLeft.getX()>0)
- {topLeft.x-=360;}}
- var cdataStart="<![CDATA[";var cdataEnd="]]>";sb+=("<GroundOverlay>");sb+=("<name>symbol fill</name>");sb+=("<description>symbol fill</description>");sb+=("<Icon>");sb+=("<href>");sb+=(cdataStart);sb+=(urlImage);sb+=(cdataEnd);sb+=("</href>");sb+=("</Icon>");sb+=("<LatLonBox>");sb+=("<north>");sb+=topLeft.getY();sb+=("</north>");sb+=("<south>");sb+=bottomRight.getY();sb+=("</south>");sb+=("<east>");sb+=bottomRight.getX();sb+=("</east>");sb+=("<west>");sb+=topLeft.getX();sb+=("</west>");sb+=("<rotation>");sb+=("0");sb+=("</rotation>");sb+=("</LatLonBox>");sb+=("</GroundOverlay>");}
- catch(exc)
- {ErrorLogger.LogException("MultiPointHandler","GenerateGroundOverlayKML",exc);}
- var kml=sb;return kml;},GetImageServerURL:function()
- {if(_appletUrl===null)
- {_appletUrl=baseURL;_appletUrl+="mil-sym-service/renderer/image/";}
- return _appletUrl;},SetImageServerURL:function(hostURL)
- {_appletUrl=hostURL;_appletUrl+="mil-sym-service/renderer/image/";}};}());var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.Shape3DHandler=function(){};sec.web.renderer.Shape3DHandler.render3dSymbol=function(name,id,shapeType,description,color,altitudeMode,controlPoints,attributes){var result="";var convertedAltitudeMode=altitudeMode;if(shapeType.equals("CYLINDER-------")){result=sec.web.renderer.Shape3DHandler.buildCylinder(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("ORBIT----------")){result=sec.web.renderer.Shape3DHandler.buildOrbit(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("RADARC---------")){result=sec.web.renderer.Shape3DHandler.buildRadarc(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("POLYARC--------")){result=sec.web.renderer.Shape3DHandler.buildPolyArc(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("ROUTE----------")){result=sec.web.renderer.Shape3DHandler.buildRoute(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("POLYGON--------")){result=sec.web.renderer.Shape3DHandler.buildPolygon(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("CAKE-----------")){result=sec.web.renderer.Shape3DHandler.buildCake(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else if(shapeType.equals("TRACK----------")){result=sec.web.renderer.Shape3DHandler.buildTrack(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}else{var sb=new sec.geo.utilities.StringBuilder();sb.append("Given shape type \""+shapeType+"\" does not match any of the available shape types.");sb.append("\n");sb.append("Available Types: ");sb.append("CYLINDER-------\n");sb.append("ORBIT----------\n");sb.append("ROUTE----------\n");sb.append("POLYGON--------\n");sb.append("RADARC---------\n");sb.append("POLYARC--------\n");sb.append("CAKE-----------\n");sb.append("TRACK----------");}
- if(!(description))
- {if(result.indexOf("<description>undefined</description>\n")>0)
- result=result.replace("<description>undefined</description>\n","");else if(result.indexOf("<description>null</description>\n")>0)
- result=result.replace("<description>null</description>\n","");}
- return result;};sec.web.renderer.Shape3DHandler.buildPolygon=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";try{var latlons=controlPoints.$plit(" ");if(latlons.length>=2){pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getPolygonKml(latlons,id,name,description,color,altitudeMode,(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}}catch(e){armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("Shape3DHandler","buildPolygon()",e);}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildCylinder=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var pivotx=0.0;var pivoty=0.0;try{var latlons=controlPoints.$plit(" ");if(latlons.length>0){var pivot=latlons[0].$plit(",");if(pivot.length>=2){pivotx=Double.parseDouble(pivot[0]);pivoty=Double.parseDouble(pivot[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}
- pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getCircleKml(pivotx,pivoty,id,name,description,color,altitudeMode,(attributes.AM_DISTANCE.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildKml=function(coords,id,name,color){var kml=new sec.geo.utilities.StringBuilder();kml.append("<Placemark>");kml.append("<name>");kml.append(name);kml.append("</name>");kml.append("<id>");kml.append(id);kml.append("</id>");kml.append("<Style>");kml.append("<PolyStyle>");kml.append("<color>");kml.append(color);kml.append("</color>");kml.append("</PolyStyle>");kml.append("<LineStyle>");kml.append(color);kml.append("</LineStyle>");kml.append("</Style>");kml.append("<MultiGeometry>");for(var s,$s=0,$$s=coords;$s<$$s.length&&((s=$$s[$s])||true);$s++){kml.append("<Polygon>");kml.append("<extrude>0</extrude>");kml.append("<altitudeMode>relativeToGround</altitudeMode>");kml.append("<outerBoundaryIs>");kml.append("<LinearRing>");kml.append("<coordinates>");kml.append(s);kml.append("</coordinates>");kml.append("</LinearRing>");kml.append("</outerBoundaryIs>");kml.append("</Polygon>");}
- kml.append("</MultiGeometry>");kml.append("</Placemark>");return kml.toString();};sec.web.renderer.Shape3DHandler.buildOrbit=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var point1x=0.0;var point1y=0.0;var point2x=0.0;var point2y=0.0;try{var latlons=controlPoints.$plit(" ");if(latlons.length>1){var point1=latlons[0].$plit(",");if(point1.length>=2){point1x=Double.parseDouble(point1[0]);point1y=Double.parseDouble(point1[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}
- var point2=latlons[1].$plit(",");if(point2.length>=2){point2x=Double.parseDouble(point2[0]);point2y=Double.parseDouble(point2[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}
- pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getOrbitKml(point1x,point1y,point2x,point2y,id,name,description,color,altitudeMode,(attributes.AM_DISTANCE.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildRadarc=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var pivotx=0.0;var pivoty=0.0;try{var latlons=controlPoints.$plit(" ");if(latlons.length>0){var pivot=latlons[0].$plit(",");if(pivot.length>=2){pivotx=Double.parseDouble(pivot[0]);pivoty=Double.parseDouble(pivot[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}
- pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getRadarcKml(pivotx,pivoty,id,name,description,color,altitudeMode,(attributes.AM_DISTANCE.get(0)).doubleValue(),(attributes.AM_DISTANCE.get(1)).doubleValue(),(attributes.AN_AZIMUTH.get(0)).doubleValue(),(attributes.AN_AZIMUTH.get(1)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildPolyArc=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var pivotx=0.0;var pivoty=0.0;try{var latlons=controlPoints.$plit(" ");if(latlons.length>=3){var pivot=latlons[0].$plit(",");if(pivot.length>=2){pivotx=Double.parseDouble(pivot[0]);pivoty=Double.parseDouble(pivot[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}
- var length=latlons.length-1;var points=new Array(length);System.arraycopy(latlons,1,points,0,length);pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getPolyarcKml(points,pivotx,pivoty,id,name,description,color,altitudeMode,(attributes.AM_DISTANCE.get(0)).doubleValue(),(attributes.AN_AZIMUTH.get(0)).doubleValue(),(attributes.AN_AZIMUTH.get(1)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildRoute=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var width;var leftWidth;var rightWidth;try{var latlons=controlPoints.$plit(" ");if(latlons.length>=2){width=(attributes.AM_DISTANCE.get(0)).doubleValue();leftWidth=width/2;rightWidth=width/2;pointArrayStringList=sec.geo.kml.XsltCoordinateWrapper.getRouteKml(latlons,id,name,description,color,altitudeMode,leftWidth,rightWidth,(attributes.X_ALTITUDE_DEPTH.get(0)).doubleValue(),(attributes.X_ALTITUDE_DEPTH.get(1)).doubleValue());}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildCake=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var letThemEat=new sec.geo.shape.Cake();var pivotx=0.0;var pivoty=0.0;var kmlRender=new sec.geo.kml.KmlRenderer();try{var latlons=controlPoints.$plit(" ");var numberOfPoints=latlons.length;if(numberOfPoints>0){var pivotString=latlons[0].$plit(",");if(pivotString.length>=2){pivotx=Double.parseDouble(pivotString[0]);pivoty=Double.parseDouble(pivotString[1]);letThemEat.setPivot(new sec.geo.GeoPoint(pivotx,pivoty));}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}
- var attributesArrayLength=attributes.X_ALTITUDE_DEPTH.size();for(var i=0;i<attributesArrayLength;i++)
- {var layerCake=new sec.geo.shape.Radarc();layerCake.setAltitudeMode(altitudeMode);layerCake.setPivot(new sec.geo.GeoPoint(pivotx,pivoty));layerCake.setMinRadius((attributes.AM_DISTANCE.get(i)).doubleValue());layerCake.setRadius((attributes.AM_DISTANCE.get(i+1)).doubleValue());layerCake.setMinAltitude((attributes.X_ALTITUDE_DEPTH.get(i)).doubleValue());layerCake.setMaxAltitude((attributes.X_ALTITUDE_DEPTH.get(i+1)).doubleValue());layerCake.setLeftAzimuthDegrees((attributes.AN_AZIMUTH.get(i)).doubleValue());layerCake.setRightAzimuthDegrees((attributes.AN_AZIMUTH.get(i+1)).doubleValue());i++;letThemEat.addLayer(layerCake);}
- pointArrayStringList=kmlRender.getKml(letThemEat,id,name,description,color);}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.buildTrack=function(controlPoints,id,name,description,color,altitudeMode,attributes){var pointArrayStringList="";var kmlRender=new sec.geo.kml.KmlRenderer();try{var latlons=controlPoints.$plit(" ");var numberOfPoints=latlons.length;if(numberOfPoints>=2){var track=new sec.geo.shape.Track();for(var i=0;i<numberOfPoints-1;i++){var route=new sec.geo.shape.Route();route.setAltitudeMode(altitudeMode);var point1String=latlons[i].$plit(",");var point2String=latlons[i+1].$plit(",");var point1lon=0.0;var point1lat=0.0;var point2lon=0.0;var point2lat=0.0;if(point1String.length>=2){point1lon=Double.parseDouble(point1String[0]);point1lat=Double.parseDouble(point1String[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}
- if(point2String.length>=2){point2lon=Double.parseDouble(point2String[0]);point2lat=Double.parseDouble(point2String[1]);}else{throw{message:"Number Format Exception",name:"Format Exception",stack:null};}
- route.addPoint(new sec.geo.GeoPoint(point1lon,point1lat));route.addPoint(new sec.geo.GeoPoint(point2lon,point2lat));route.setLeftWidth((attributes.AM_DISTANCE.get(2*i)).doubleValue());route.setRightWidth((attributes.AM_DISTANCE.get(2*i+1)).doubleValue());route.setMinAltitude((attributes.X_ALTITUDE_DEPTH.get(2*i)).doubleValue());route.setMaxAltitude((attributes.X_ALTITUDE_DEPTH.get(2*i+1)).doubleValue());track.addRoute(route);}
- pointArrayStringList=kmlRender.getKml(track,id,name,description,color);}else{throw{message:"Invalid Number of Points",name:"Point Exception",stack:null};}}catch(e){throw e;}
- return pointArrayStringList;};sec.web.renderer.Shape3DHandler.CYLINDER="CYLINDER-------";sec.web.renderer.Shape3DHandler.ORBIT="ORBIT----------";sec.web.renderer.Shape3DHandler.ROUTE="ROUTE----------";sec.web.renderer.Shape3DHandler.POLYGON="POLYGON--------";sec.web.renderer.Shape3DHandler.RADARC="RADARC---------";sec.web.renderer.Shape3DHandler.POLYARC="POLYARC--------";sec.web.renderer.Shape3DHandler.CAKE="CAKE-----------";sec.web.renderer.Shape3DHandler.TRACK="TRACK----------";sec.web.renderer.Shape3DHandler.ATTRIBUTES="attributes";sec.web.renderer.Shape3DHandler.MIN_ALT="minalt";sec.web.renderer.Shape3DHandler.MAX_ALT="maxalt";sec.web.renderer.Shape3DHandler.RADIUS1="radius1";sec.web.renderer.Shape3DHandler.RADIUS2="radius2";sec.web.renderer.Shape3DHandler.LEFT_AZIMUTH="leftazimuth";sec.web.renderer.Shape3DHandler.RIGHT_AZIMUTH="rightazimuth";sec.web.renderer.Shape3DHandler.MIN_ALT_DEFAULT=0.0;sec.web.renderer.Shape3DHandler.MAX_ALT_DEFAULT=100.0;sec.web.renderer.Shape3DHandler.RADIUS1_DEFAULT=50.0;sec.web.renderer.Shape3DHandler.RADIUS2_DEFAULT=100.0;sec.web.renderer.Shape3DHandler.LEFT_AZIMUTH_DEFAULT=0.0;sec.web.renderer.Shape3DHandler.RIGHT_AZIMUTH_DEFAULT=90.0;sec.web.renderer.Shape3DHandler.DEFAULT_ATTRIBUTES="[{radius1:50.0,radius2:100.0,minalt:0.0,maxalt:100.0,rightAzimuth:90.0,leftAzimuth:0.0}]";sec.web.renderer.Shape3DHandler.ERR_ATRIBUTES_NOT_FORMATTED="{\"type\":\"error\",\"error\":\"The attribute paramaters are not formatted correctly";sec.web.renderer.Shape3DHandler.ERR_COORDINATES_NOT_FORMATTED="{\"type\":\"error\",\"error\":\"There was an error creating the Symbol - the coordinates were not formatted correctly";sec.web.renderer.Shape3DHandler.ERR_GENERAL_ERROR="{\"type\":\"error\",\"error\":\"There was an error creating the Symbol - An unknown error occurred. Please refer to the stack trace";sec.web.renderer.Shape3DHandler.ERR_INVALID_NUMBER_POINTS_ERROR="{\"type\":\"error\",\"error\":\"Not enough points were passed in to create a graphic.";var sec=sec||{};sec.web=sec.web||{};sec.web.renderer=sec.web.renderer||{};sec.web.renderer.SECWebRenderer=(function(){var CYLINDER="CYLINDER-------",ORBIT="ORBIT----------",ROUTE="ROUTE----------",POLYGON="POLYGON--------",RADARC="RADARC---------",POLYARC="POLYARC--------",CAKE="CAKE-----------",TRACK="TRACK----------",CURTAIN="CURTAIN--------",ATTRIBUTES="attributes",MIN_ALT="minalt",MAX_ALT="maxalt",RADIUS1="radius1",RADIUS2="radius2",LEFT_AZIMUTH="leftAzimuth",RIGHT_AZIMUTH="rightAzimuth",MIN_ALT_DEFAULT=0.0,MAX_ALT_DEFAULT=100.0,RADIUS1_DEFAULT=50.0,RADIUS2_DEFAULT=100.0,LEFT_AZIMUTH_DEFAULT=0.0,RIGHT_AZIMUTH_DEFAULT=90.0,ERR_ATTRIBUTES_NOT_FORMATTED="{\"type\":\"error\",\"error\":\"The attribute paramaters are not formatted correctly",DEFAULT_ATTRIBUTES="[{radius1:50.0,radius2:100.0,minalt:0.0,maxalt:100.0,rightAzimuth:90.0,leftAzimuth:0.0}]",spsPortNumber=-1,ErrorLogger=armyc2.c2sd.renderer.utilities.ErrorLogger,SymbolUtilities=armyc2.c2sd.renderer.utilities.SymbolUtilities,JavaRendererUtilities=sec.web.renderer.utilities.JavaRendererUtilities,Shape3DHandler=sec.web.renderer.Shape3DHandler,MilStdIconRenderer=null;if(armyc2.c2sd.renderer.MilStdIconRenderer)
- {MilStdIconRenderer=armyc2.c2sd.renderer.MilStdIconRenderer;}
- else
- {armyc2.c2sd.renderer.utilities.SymbolDefTable.init();}
- return{setLoggingLevel:function(level)
- {ErrorLogger.setLevel(level);},RenderSymbol:function(id,name,description,symbolCode,controlPoints,altitudeMode,scale,bbox,modifiers,format,symStd)
- {var output="";try
- {if(JavaRendererUtilities.is3dSymbol(symbolCode,modifiers))
- {if(!(altitudeMode&&altitudeMode.length))
- altitudeMode="relativeToGround";output=this.RenderMilStd3dSymbol(name,id,symbolCode,description,altitudeMode,controlPoints,modifiers);var modifierKML=sec.web.renderer.MultiPointHandler.getModififerKML(id,name,description,symbolCode,controlPoints,scale,bbox,modifiers,format,symStd);modifierKML+="</Folder>";output=output.replace("</Folder>",modifierKML);if(output===""){output=sec.web.renderer.MultiPointHandler.RenderSymbol(id,name,description,symbolCode,controlPoints,scale,bbox,modifiers,format,symStd);}}
- else
- {output=sec.web.renderer.MultiPointHandler.RenderSymbol(id,name,description,symbolCode,controlPoints,scale,bbox,modifiers,format,symStd);}
- return output;}
- catch(err)
- {output="{\"type\":'error',error:'There was an error creating the MilStdSymbol - "+err.name+":"+err.message+"'}";ErrorLogger.LogException("SECWebRenderer","RenderSymbol",err,ErrorLogger.WARNING);}
- return output;},RenderSymbol2D:function(id,name,description,symbolCode,controlPoints,pixelWidth,pixelHeight,bbox,modifiers,format,symStd)
- {var output="";try
- {output=sec.web.renderer.MultiPointHandler.RenderSymbol2D(id,name,description,symbolCode,controlPoints,pixelWidth,pixelHeight,bbox,modifiers,format,symStd);}
- catch(exc)
- {output="{\"type\":'error',error:'There was an error creating the MilStdSymbol: "+symbolCode+" - "+exc.toString()+"'}";ErrorLogger.LogException("SECWebRenderer","RenderSymbol2D",exc,ErrorLogger.WARNING);}
- return output;},Render3dSymbol:function(name,id,shapeType,description,color,altitudeMode,controlPoints,AttributesArray)
- {var returnValue="";try{var attributes={};attributes.AM_DISTANCE=new java.util.ArrayList();attributes.X_ALTITUDE_DEPTH=new java.util.ArrayList();attributes.AN_AZIMUTH=new java.util.ArrayList();if(AttributesArray===null||attributes===""){AttributesArray=[{innerRadius:50.0,radius:100.0,minAlt:0.0,maxAlt:100.0,rightAzimuth:90.0,leftAzimuth:0.0}];}
- var attributesArrayLength=AttributesArray.length;if(attributesArrayLength>0){for(var i=0;i<attributesArrayLength;i++)
- {if(AttributesArray[i].innerRadius!==undefined)
- {attributes.AM_DISTANCE.add(new Double(AttributesArray[i].innerRadius));}
- if(AttributesArray[i].radius!==undefined)
- {attributes.AM_DISTANCE.add(new Double(AttributesArray[i].radius));}
- else if(AttributesArray[i].width!==undefined)
- {attributes.AM_DISTANCE.add(new Double(AttributesArray[i].width));}
- else if(AttributesArray[i].leftWidth!==undefined)
- {attributes.AM_DISTANCE.add(new Double(AttributesArray[i].leftWidth));}
- if(AttributesArray[i].rightWidth!==undefined)
- {attributes.AM_DISTANCE.add(new Double(AttributesArray[i].rightWidth));}
- if(AttributesArray[i].minAlt!==undefined)
- {attributes.X_ALTITUDE_DEPTH.add(new Double(AttributesArray[i].minAlt));}
- if(AttributesArray[i].maxAlt!==undefined)
- {attributes.X_ALTITUDE_DEPTH.add(new Double(AttributesArray[i].maxAlt));}
- if(AttributesArray[i].leftAzimuth!==undefined)
- {attributes.AN_AZIMUTH.add(new Double(AttributesArray[i].leftAzimuth));}
- if(AttributesArray[i].rightAzimuth!==undefined)
- {attributes.AN_AZIMUTH.add(new Double(AttributesArray[i].rightAzimuth));}}}
- if(shapeType===CURTAIN)
- {shapeType=TRACK;var lenX=attributes.X_ALTITUDE_DEPTH.array.length;var lenAM=attributes.AM_DISTANCE.array.length;var pointCount=0;var coords=controlPoints.split(" ");pointCount=coords.length;var i=0;if(lenX===2)
- {var curtainMinAlt=new Double(attributes.X_ALTITUDE_DEPTH.get(0).value);var curtainMaxAlt=new Double(attributes.X_ALTITUDE_DEPTH.get(1).value);lenX=pointCount*2;attributes.X_ALTITUDE_DEPTH.clear();for(i=0;i<lenX;i++)
- {if(i%2===0)
- attributes.X_ALTITUDE_DEPTH.add(curtainMinAlt);else
- attributes.X_ALTITUDE_DEPTH.add(curtainMaxAlt);}}
- else
- {var curtainMinAlt=new Double(1);var curtainMaxAlt=new Double(10000);lenX=pointCount*2;attributes.X_ALTITUDE_DEPTH.clear();for(i=0;i<lenX;i++)
- {if(i%2===0)
- attributes.X_ALTITUDE_DEPTH.add(curtainMinAlt);else
- attributes.X_ALTITUDE_DEPTH.add(curtainMaxAlt);}}
- attributes.AM_DISTANCE.clear();lenAM=pointCount*2;var curtainWidth=new Double(1);for(i=0;i<lenAM;i++)
- {attributes.AM_DISTANCE.add(curtainWidth);}}
- if(shapeType===POLYARC)
- {var coords=controlPoints.split(" ");var clockWise=false;if(this.CalculateSignedAreaOfPolygon(coords)<0)
- {clockWise=true;}
- if(clockWise)
- {coords=coords.reverse();controlPoints="";var len=coords.length;for(var i=0;i<(len);i++)
- {if(i<len-1)
- {controlPoints+=" "+coords[i];}
- else
- {controlPoints=coords[i]+controlPoints;}}}}
- returnValue=sec.web.renderer.Shape3DHandler.render3dSymbol(name,id,shapeType,description,color,altitudeMode,controlPoints,attributes);}
- catch(err)
- {armyc2.c2sd.renderer.utilities.ErrorLogger.LogException("SECWebRenderer","Render3dSymbol()",err);return"";}
- return returnValue;},CalculateSignedAreaOfPolygon:function(coords)
- {var x1,y1,x2,y2,coord,signedArea=0,len=0;len=coords.length;for(var i=0;i<len;i++)
- {if(i<len-1)
- {coord=coords[i].split(",");x1=parseFloat(coord[0]);y1=parseFloat(coord[1]);coord=coords[i+1].split(",");x2=parseFloat(coord[0]);y2=parseFloat(coord[1]);}
- else
- {coord=coords[i].split(",");x1=parseFloat(coord[0]);y1=parseFloat(coord[1]);coord=coords[0].split(",");x2=parseFloat(coord[0]);y2=parseFloat(coord[1]);}
- signedArea+=(x1*y2-x2*y1);}
- return signedArea/2;},RenderMilStd3dSymbol:function(name,id,symbolCode,description,altitudeMode,controlPoints,modifiers){var symbolId=symbolCode.substring(4,10);var attributes={};attributes.AM_DISTANCE=new java.util.ArrayList();attributes.X_ALTITUDE_DEPTH=new java.util.ArrayList();attributes.AN_AZIMUTH=new java.util.ArrayList();var output="";var convertedAltitudeMode=null;if(altitudeMode&&altitudeMode.length)
- {convertedAltitudeMode=altitudeMode;}
- else
- {convertedAltitudeMode="relativeToGround";}
- try
- {var modifiersJSON;var altitudeDepthJSON=null;var distanceJSON=null;var azimuthJSON=null;var altitudeDepthLength=0;var distanceLength=0;var azimuthLength=0;var color="";if(modifiers)
- {if(modifiers&&modifiers.modifiers)
- modifiersJSON=modifiers.modifiers;else
- modifiersJSON=modifiers;if(modifiersJSON.X)
- {altitudeDepthJSON=modifiersJSON.X;altitudeDepthLength=altitudeDepthJSON.length;}
- else if(modifiersJSON.altitudeDepth)
- {altitudeDepthJSON=modifiersJSON.altitudeDepth;altitudeDepthLength=altitudeDepthJSON.length;}
- if(modifiersJSON.AN)
- {azimuthJSON=modifiersJSON.AN;azimuthLength=azimuthJSON.length;}
- else if(modifiersJSON.azimuth)
- {azimuthJSON=modifiersJSON.azimuth;azimuthLength=azimuthJSON.length;}
- if(modifiersJSON.AM)
- {distanceJSON=modifiersJSON.AM;distanceLength=distanceJSON.length;}
- else if(modifiersJSON.distance)
- {distanceJSON=modifiersJSON.distance;distanceLength=distanceJSON.length;}
- if(modifiersJSON.fillColor)
- {color=modifiersJSON.fillColor;}
- else
- {color=SymbolUtilities.getFillColorOfAffiliation(symbolCode);color.A=170;color=color.toHexString().substring(1);if(color===null)
- {color="AA000000";}}
- color=JavaRendererUtilities.ARGBtoABGR(color);for(var i=0;i<altitudeDepthLength;i++)
- {if(symbolId.substring(0,3)===("AJP"))
- {attributes.X_ALTITUDE_DEPTH.add(new Double(0));i++;}
- attributes.X_ALTITUDE_DEPTH.add(new Double(altitudeDepthJSON[i]));}
- for(var i=0;i<distanceLength;i++)
- {if(symbolId.equals("ACAR--")||symbolId.equals("AKPR--")||symbolId.equals("ALC---")||symbolId.equals("ALM---")||symbolId.equals("ALS---")||symbolId.equals("ALU---")||symbolId.equals("ALL---")){var width=distanceJSON[i]/2;attributes.AM_DISTANCE.add(new Double(width));attributes.AM_DISTANCE.add(new Double(width));}else{attributes.AM_DISTANCE.add(new Double(distanceJSON[i]));}}
- if(symbolId.equals("ACAI--")||symbolId.equals("AKPI--")||symbolId.equals("AAR---")||symbolId.equals("AAF---")||symbolId.equals("AAH---")||symbolId.equals("AAM---")||symbolId.equals("AAML--")||symbolId.equals("AAMH--"))
- {output=Shape3DHandler.buildPolygon(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}
- else if(symbolId.equals("ACAR--")||symbolId.equals("AKPR--")||symbolId.equals("ALC---")||symbolId.equals("ALM---")||symbolId.equals("ALS---")||symbolId.equals("ALU---")||symbolId.equals("ALL---"))
- {output=Shape3DHandler.buildTrack(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}
- else if(symbolId.equals("ACAC--")||symbolId.equals("AKPC--"))
- {output=Shape3DHandler.buildCylinder(controlPoints,id,name,description,color,convertedAltitudeMode,attributes);}}}
- catch(je)
- {output="";ErrorLogger.LogException("SECWebRenderer","RenderMilStd3dSymbol",je);}
- return output;},ShouldClipMultipointSymbol:function(symbolID)
- {return sec.web.renderer.MultiPointHandler.ShouldClipSymbol(symbolID);},getSinglePointInfo:function(symbolID)
- {var info="";if(MilStdIconRenderer!==null)
- {var modifiers=JavaRendererUtilities.createParameterMapFromURL(symbolID);var symbolID=modifiers["SYMBOLID"];modifiers["RENDER"]=false;var ii=MilStdIconRenderer.Render(symbolID,modifiers);var anchor=ii.getCenterPoint();var symbolBounds=ii.getSymbolBounds();var iconSize=ii.getImageBounds();info=anchor.getX()+","+anchor.getY()+","+
- symbolBounds.getX()+","+symbolBounds.getY()+","+
- symbolBounds.getWidth()+","+symbolBounds.getHeight()+","+
- iconSize.getWidth()+","+iconSize.getHeight();}
- return info;},getSinglePointInfoBatch:function(batch)
- {var info="",sb="";try
- {if(MilStdIconRenderer!==null)
- {var data=null;var jsonSPString=JSON.parse(batch);var jsa=jsonSPString["iconURLs"];var len=jsa.length;sb+=("{\"singlepoints\":[");var item=null;for(var i=0;i<len;i++)
- {if(i>0)
- {sb+=(",");}
- info=jsa[i];var modifiers=JavaRendererUtilities.createParameterMapFromURL(info);var symbolID=modifiers["SYMBOLID"];modifiers["RENDER"]=false;var ii=MilStdIconRenderer.Render(symbolID,modifiers);var anchor=ii.getCenterPoint();var symbolBounds=ii.getSymbolBounds();var iconSize=ii.getImageBounds();var item="";item+=("{\"x\":");item+=(anchor.getX());item+=(",\"y\":");item+=(anchor.getY());item+=(",\"boundsx\":");item+=(symbolBounds.getX());item+=(",\"boundsy\":");item+=(symbolBounds.getY());item+=(",\"boundswidth\":");item+=(symbolBounds.getWidth());item+=(",\"boundsheight\":");item+=(symbolBounds.getHeight());item+=(",\"iconwidth\":");item+=(iconSize.getWidth());item+=(",\"iconheight\":");item+=(iconSize.getHeight());item+=("}");sb+=(item);}
- sb+=("]}");}}
- catch(exc)
- {ErrorLogger.LogException("SECWebRenderer","getSinglePointInfoBatch",exc);}
- return sb;},setDefaultSymbologyStandard:function(symStd)
- {armyc2.c2sd.renderer.utilities.RendererSettings.setSymbologyStandard(symStd);}};}());
|